See ext2 filesystem basics for a quick introduction to files, directories,
links, and that sort of stuff, or this might be somewhat confusing.
Listing files
Alright. As you have seen before you can view a file's attributes by
typing "ls -li", or "ls -ldi" for directories. For more options to ls
see the manual page by typing "man 1 ls".
Copying files
Copying files. You can copy a file like so:
tribbel:~/docs/culture% cp hamlet.all.txt hamlet.txt
tribbel:~/docs/culture% ls -li hamlet.all.txt hamlet.txt
98700 -rw-r--r-- 1 tribbel staff 200059 May 30 17:41 hamlet.all.txt
98694 -rw-r--r-- 1 tribbel staff 200059 Sep 6 16:48 hamlet.txt
See? Two files, two inodes, same size, different alteration dates.
To copy a directory give the '-r' option to cp. Like so:
tribbel:~/docs% cp -r culture art
tribbel:~/docs% ls -ldi culture art
238581 drwxr-xr-x 3 tribbel staff 1024 Sep 6 16:49 art
98691 drwxr-xr-x 3 tribbel staff 1024 Sep 6 16:48 culture
There. Two directories, two inodes, same size, same number of subdirectories,
different alteration date. See the manual page for cp for more options by
typing "man 1 cp".
Change working directory
If you've worked with MS-DOS before, you know the "cd" command. Note that
ext2 uses `/' as a delimiter between subdirectories, and not `\' like
MS-DOS. To change to my newly created "art" directory we can do:
tribbel:~/docs% cd art
tribbel:~/docs/art%
To get back we can do:
tribbel:~/docs/art% cd ..
tribbel:~/docs%
To go into the music subdirectory, we can do:
tribbel:~/docs% cd art/music
tribbel:~/docs/art/music%
Another special directory to note is `.' this is the same directory as
the one we're already in:
tribbel:~/docs/art/music% cd .
tribbel:~/docs/art/music%
(Re)moving files
Now I have duplicate files on my harddrive. I don't like that, because they
take up space. So I'm going to remove them. First, I'll remove the duplicate
copy of Hamlet.
tribbel:~/docs% cd culture
tribbel:~/docs/culture% rm hamlet.txt
tribbel:~/docs/culture% ls -li hamlet.txt
ls: hamlet.txt: No such file or directory
There. It's gone. Now to remove the "art" directory.
tribbel:~/docs/culture% cd ..
tribbel:~/docs% rm -r art
tribbel:~/docs% ls -ldi art
ls: art: No such file or directory
Now that's gone too. And we have a nice, clean, filesystem. Oops.
I wanted to name my "culture" directory "art". This can be accomplished
by "moving" the file. Basically nothing changes, but the filename.
tribbel:~/docs% ls -ldi culture
98691 drwxr-xr-x 3 tribbel staff 1024 Sep 6 16:56 culture
tribbel:~/docs% mv culture art
tribbel:~/docs% ls -ldi art
98691 drwxr-xr-x 3 tribbel staff 1024 Sep 6 16:56 art
Links
You know what? I want both "culture" and "art", and "hamlet.txt" and
"hamlet.all.txt". Let's create links. We'll softlink the directory,
because hard linking directories is not allowed.
tribbel:~/docs% ls -ldi art
98691 drwxr-xr-x 3 tribbel staff 1024 Sep 6 16:56 art
tribbel:~/docs% ln -s art culture
tribbel:~/docs% ls -ldi art culture
98691 drwxr-xr-x 3 tribbel staff 1024 Sep 6 16:56 art
117373 lrwxrwxrwx 1 tribbel staff 3 Sep 6 17:03 culture -> art
The 'l' in the permission field is used to indicate that this is a link.
Now for Hamlet.
tribbel:~/docs% cd culture
tribbel:~/docs/culture% ln hamlet.all.txt hamlet.txt
tribbel:~/docs/culture% ls -li hamlet.all.txt hamlet.txt
98700 -rw-r--r-- 2 tribbel staff 200059 May 30 17:41 hamlet.all.txt
98700 -rw-r--r-- 2 tribbel staff 200059 May 30 17:41 hamlet.txt
tribbel:~/docs/culture% ls -li ../art/hamlet.txt
98700 -rw-r--r-- 2 tribbel staff 200059 May 30 17:41 ../art/hamlet.txt
Quick Reference
MS-DOS Linux Action
---------------------------------------------------------------
copy cp copy a file to another file.
move mv rename a file.
del rm delete a file.
deltree rm -r delete a directory.
dir ls list file(s).
cd cd change working directory.
--- pwd show working directory.
--- ln hard link a file.
--- ln -s soft link a file.
Back to Linux for Monkeys