If you're copying a file on a Unix / Linux / OS X operating system, use the
cp command. Use
cp -r to copy a directory and
all its contents - the
-r means "recursive". If you use the
cp command to copy files that you have read access to, but do not own, then you'll be made the owner of the new copies; for the command to do otherwise would have security implications.
So what if you need to copy whole directory structure and
retain the current user and group assignments? First, you'll need to log in as the system administrator (root). Use the
su - command and be careful!
Once you're logged in as root, change to the directory that's above the one you wish to copy, and copy via the
tar command. For example, to copy everything in /home to /second/home:
cd /
mkdir /second
tar cpf - home | (cd second; tar xpf -)
The tar utility is more often used to make an archive file containing all of the information in a directory or series of directorys.
• Specified with the
c parameter, tar
creates an archive and with the
x parameter, it e
xtracts from an archive
• With the
f - option, tar is instructed to write to
stdout or read from
stdin.
• The
p option preserves ownerships on extraction, to prevent all of the files being changed to the ownership of the person running the command ... and for reasons of inter-user security, this only works for root.
(written 2006-04-28, updated 2006-06-05)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
A162 - Web Application Deployment - Backups and File System Management [153] Linux - where to put swap space - (2004-12-16)
[334] Symbolic links and hard links - (2005-06-02)
[554] What backup is adequate? - (2006-01-04)
[593] Finding where the disc space has gone - (2006-02-06)
[735] Boys will be boys, saved by Ubuntu - (2006-05-27)
[754] tar, jar, war, ear, sar files - (2006-06-10)
[1013] Copy multiple files - confusing error message from cp - (2006-12-30)
[1023] Finding public writeable things on your linux file system - (2007-01-06)
[1288] Linux run states, shell special commands, and directory structures - (2007-08-03)
[1439] Linux / Unix - layout of operating system files - (2007-11-20)
[1648] The tourists guide to Linux - (2008-05-20)
[1765] Dialects of English and Unix - (2008-08-21)
[1801] Will your backups work if you have to restore them? - (2008-09-18)
[1893] Some Linux and Unix tips - (2008-11-18)
[2299] How much space does my directory take - Linux - (2009-07-20)
[4056] An overpractical test of our backup strategy! - (2013-03-30)
[4063] Backups by crossover between network centres - setting up automatic scp transfers - (2013-04-13)
[4115] More or less back - what happened to our server the other day - (2013-06-14)
[4390] Checking MySQL database backups have worked (not failed) - (2015-01-10)
[4400] Commenting out an echo killed my bash backup script - (2015-01-19)
[4405] Backup procedures - via backup server - (2015-01-24)
[4481] Extracting data from backups to restore selected rows from MySQL tables - (2015-05-01)
A101 - Web Application Deployment - Linux -An Introduction For Users [73] vi - full circle - (2004-10-04)
[74] pushd and popd - (2004-10-05)
[152] Aladdin, or careful what you wish. - (2004-12-15)
[249] An easy way out - (2005-03-17)
[430] Linux commands - some basics - (2005-08-31)
[431] File permissions of Linux and Unix systems - (2005-08-31)
[659] Web Application Components - (2006-03-28)
[679] More or less on the edge of the page - (2006-04-11)
[710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
[711] THE home directory or MY home directory - (2006-05-06)
[749] Cottage industry or production line data handling methods - (2006-06-07)
[984] Cardinal numbers and magic numbers - (2006-12-14)
[1012] Moving files between Windows / DOS and Linux / Unix - (2006-12-30)
[1068] ls -l report, Linux / Unix - types and permssions - (2007-02-06)
[1259] Where am I and how did I get here? - (2007-07-05)
[1287] Work and play at Well House Manor - Football and Shell Shortcuts - (2007-08-02)
[1366] awk - a powerful data extraction and manipulation tool - (2007-09-25)
[1408] Wireless hotel tips - FTP and Skype connections failing - (2007-10-26)
[1438] Copy and paste / cut and paste and other vi techniques - (2007-11-20)
[1527] Selecting file names in a shell - one word or another - (2008-02-02)
[1651] ls command - favourite options - (2008-05-23)
[1764] Yank and Push - copy and move in vi - (2008-08-21)
[1803] FTP passive mode - a sometimes cure for upload hangs - (2008-09-20)
[1897] Keeping on an even keel - (2008-11-21)
[1902] sstrwxrwxrwx - Unix and Linux file permissions - (2008-11-23)
[1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
[2201] Running straight from the jar, but not from a tar - (2009-05-26)
[2203] Always use su with minus. And where do programs come from? - (2009-05-27)
[2300] What does x on a linux directory mean? - (2009-07-21)
[2479] Accidentally typed ci rather than vi? - (2009-10-27)
[2494] Making Linux Politically correct - (2009-11-06)
[2636] Linux - useful tips including history and file name completion - (2010-02-15)
[2831] Recording (a macro) in vi - (2010-06-27)
[3179] Oops - I typed ci not vi, and have lost my file ... - (2011-02-21)
[3256] Displaying a directory or file system tree - Linux - (2011-04-22)
[3791] The Kernel, Shells and Daemons. Greek Gods in computing - (2012-07-01)
[3819] Packing a tar, jar or war file - best practise - (2012-07-26)
Some other Articles
A story of goldfishMay day awayDisc PartitioningErin Brent - rest in peaceCopying files and preserving ownershipIterators - expressions tha change each time you call themMinature Cyclists only - limited headroomAs I walked in to OxfordExtremes costs of getting on lineCatch up weekend