There are many ways to work with the files on your system. Usually you create a text file with a text editor. The common editors in the UNIX environment are vi and ed. The AIX operating system also includes its own text editor, INed. Because several text editors are available, you can choose to edit with the editor you feel comfortable with.
You can also create files by using input/output redirection, as described in "Input and Output Redirection". The output of a command can be sent to a new file or appended to an existing file.
After creating and modifying files, you may have to copy or move files from one directory to another, rename files to distinguish different versions of a file or give different names to the same file. You may also need to create new directories when working on different projects.
Also, you may need to delete certain files. Your directory can quickly get cluttered with files that contain old or useless information. Deleting files that are not needed frees up storage space on your system.
This section discusses:
When you no longer need a file, you can remove it with the del, rm, or delete commands. The del command asks for confirmation before deleting a file. This gives you a chance to change your mind. The rm and delete commands do not require user confirmation before removing the file. You can also use any of these commands to delete a group of files or to select certain files from a list for deletion.
Attention: The del command ignores file protection, allowing the owner of a file to delete a write-protected file. However, to delete a file, you must have write permission in the directory containing the file. Because pressing the Enter key by itself is the same as answering yes, be careful not to delete files accidentally.
The del command displays the list of specified files and asks you to confirm your request to delete the group of files. To answer yes (delete the files), press the Enter key, or enter a line beginning with y (or the locale's equivalent of a y ). Any other response specifies no (do not delete the files).
Note: The del command does not delete directories. See the rmdir command for information about deleting directories.
For example, to delete the file named chap1.bak , enter:
del chap1.bak
This displays the message:
del: Remove chap1.bak? Enter y or the Enter key for yes.
You can press the Enter key or y to answer yes. Pressing any other key cancels the deletion.
See the del command in the AIX Version 4.3 Commands Reference for the exact syntax.
The rm or delete command removes the entries for the specified file or files from a directory. You do not need read or write permission for the file you want to remove. However, you must have write permission for the directory containing that file.
For example, to delete the file named myfile , enter:
rm myfile
To delete all the files in the mydir directory one by one, enter:
rm -i mydir/*
After each file name is displayed, enter y to delete the file, or press the Enter key to keep it.
Note: This is different from the del command.
See the rm command in the AIX Version 4.3 Commands Reference for the exact syntax.
The mv command moves files and directories from one directory to another or renames a file or directory. If you move a file or directory to a new directory without specifying a new name, it retains its original name.
Attention: The mv command can overwrite many existing files unless you specify the -i flag. The -i flag prompts you to confirm before it overwrites a file. The -f flag does not prompt you. If both the -f and -i flags are specified in combination, the last flag specified takes effect.
For example, to move a file to another directory and give it a new name, enter:
mv intro manual/chap1
This moves intro to manual/chap1 . The name intro is removed from the current directory, and the same file appears as chap1 in the directory manual . Note the previous Warning.
For example, to move a file to another directory, keeping the same name, enter:
mv chap3 manual
This moves chap3 to manual/chap3 . Note the previous Warning.
For example, to rename a file, enter:
mv appendix apndx.a
This renames appendix to apndx.a . If a file named apndx.a already exists, its old contents are replaced with those of appendix . Note the previous Warning.
See the mv command in the AIX Version 4.3 Commands Reference for the exact syntax.
The cp or copy command creates a copy of the contents of the file or directory specified by the SourceFile or SourceDirectory parameters into the file or directory specified by the TargetFile or TargetDirectory parameters. If the file specified as the TargetFile exists, the copy writes over the original contents of the file without warning. If you are copying more than one SourceFile, the target must be a directory.
If a file with the same name exists at the new destination, the copied file will overwrite the file at the new destination. Therefore, it is a good practice to assign a new name for the copy of the file to ensure that a file of the same name does not exist in the destination directory.
To place a copy of the SourceFile into a directory, specify a path to an existing directory for the TargetDirectory parameter. Files maintain their respective names when copied to a directory unless you specify a new file name at the end of the path. The cp command also copies entire directories into other directories if you specify the -r or -R flags.
You can also copy special-device files. The preferred option for accomplishing this is the -R flag. Specifying -R causes the special files to be recreated under the new path name. Specifying the -r flag causes the cp command to attempt to copy the special files to regular files.
For example, to make a copy of a file in the current directory, enter:
cp prog.c prog.bak
This copies prog.c to prog.bak . If the prog.bak file does not already exist, then the cp command creates it. If it does exist, then the cp command replaces it with a copy of the prog.c file.
For example, to copy a file in your current directory into another directory, enter:
cp jones /home/nick/clients
This copies the jones file to /home/nick/clients/jones .
For example, to copy all the files in a directory to a new directory, enter:
cp /home/janet/clients/* /home/nick/customers
This copies only the files in the clients directory to the customers directory.
For example, to copy a specific set of files to another directory, enter:
cp jones lewis smith /home/nick/clients
This copies the jones , lewis , and smith files in your current working directory to the /home/nick/clients directory.
For example, to use pattern-matching characters to copy files, enter:
cp programs/*.c .
This copies the files in the programs directory that end with .c to the current directory, signified by the single . (dot). You must type a space between the c and the final dot.
See the cp command in the AIX Version 4.3 Commands Reference for the exact syntax.
The find command recursively searches the directory tree for each specified Path, seeking files that match a Boolean expression written using the terms given in the following text. The output from the find command depends on the terms specified by the Expression parameter.
For example, to list all files in the file system with the name .profile , enter:
find / -name .profile
This searches the entire file system and writes the complete path names of all files named .profile . The / (slash) tells the find command to search the /(root) directory and all of its subdirectories.To avoid wasting time, it is best to limit the search by specifying the directories where you think the files might be.
For example, to list files having a specific permission code of 0600 in the current directory tree, enter:
find . -perm 0600
This lists the names of the files that have only owner-read and owner-write permission. The . (dot) tells the find command to search the current directory and its subdirectories. See the chmod command for an explanation of permission codes.
For example, to search several directories for files with certain permission codes, enter:
find manual clients proposals -perm -0600
This lists the names of the files that have owner-read and owner-write permission and possibly other permissions. The manual , clients , and proposals directories and their subdirectories are searched. In the previous example, -perm 0600 selects only files with permission codes that match 0600 exactly. In this example, -perm -0600 selects files with permission codes that allow the accesses indicated by 0600 and other accesses above the 0600 level. This also matches the permission codes 0622 and 2744.
For example, to list all files in the current directory that have been changed during the current 24-hour period, enter:
find . -ctime 0
For example, to search for regular files with multiple links, enter:
find . -type f -links +1
This lists the names of the ordinary files (-type f ) that have more than one link (-links +1 ).
Note: Every directory has at least two links: the entry in its parent directory and its own . (dot) entry. See the ln command for more information on multiple file links.
For example, to print the path names of all files in or below the current directory, except the directories named SCCS or files in the SCCS directories, enter:
find . -name SCCS -prune
For example, to search for all files that are exactly 414 bytes long, enter:
find . -size 414c
See the find command in the AIX Version 4.3 Commands Reference for the exact syntax.
The file command reads the files specified by the File or -f FileList parameter, performs a series of tests on each one, and attempts to classify them by types. The command then writes the file types to standard output.
If a file appears to be ASCII, the file command examines the first 512 bytes and determines its language. If a file does not appear to be ASCII, the file command further attempts to determine whether it is a binary data file or a text file that contains extended characters.
If the File parameter specifies an executable or object module file and the version number is greater than 0, the file command displays the version stamp.
The file command uses the /etc/magic file to identify files that have some sort of magic number, that is, any file containing a numeric or string constant that indicates type.
For example, to display the type of information the file named myfile contains, enter:
file myfile
This displays the file type of myfile (such as directory, data, ASCII text, C-program source, and archive).
For example, to display the type of each file named in filenames.lst , which contains a list of file names, enter:
file -f filenames.lst
This displays the type of each file named in the filenames.lst list. Each file name must appear alone on a line.
For example, to create the file filenames.lst , so that it contains all the file names in the current directory enter:
ls > filenames.lst
Then edit filenames as desired.
See the file command in the AIX Version 4.3 Commands Reference for the exact syntax.
The pg, more, and page commands allow you to view the contents of a file and control the speed that your files are displayed. You can also use the cat command to display the contents of one or more files on your screen. Combining the cat command with the pg command allows you to read the contents of a file one full screen at a time.
You can also display the contents of files by using input/output redirection. See "Input and Output Redirection Overview" for more details on input/output redirection.
The pg command reads the file names from the File parameter and writes them to standard output one screen at a time. If you specify - (minus) as the File parameter, or run the pg command without options, the pg command reads standard input. Each screen is followed by a prompt. If you press the Enter key, another screen displays. Subcommands used with the pg command let you review something that has already passed.
For example, to look at the contents of the file myfile one page at a time, enter:
pg myfile
See the pg command in the AIX Version 4.3 Commands Reference for the exact syntax.
The more or page command displays continuous text one screen at a time. It pauses after each screen and prints the filename and percent done (for example, myfile (7%) ) at the bottom of the screen. If you then press the Enter key, the more command displays an additional line. If you press the Spacebar, the more command displays another screen of text.
Note: On some terminal models, the more command clears the screen, instead of scrolling, before displaying the next screen of data.
For example, to view a file named myfile , enter:
more myfile
Press the Spacebar to view the next screen.
See the more command in theAIX Version 4.3 Commands Reference for more information and the exact syntax.
The cat command reads each File parameter in sequence and writes it to standard output.
For example, to display the contents of the file notes , enter:
cat notes
If the file is more than 24 lines long, some of it scrolls off the screen. To list a file one page at a time, use the pg command.
For example, to display the contents of the files notes , notes2 , and notes3 , enter:
cat notes notes2 notes3
See the cat command in the AIX Version 4.3 Commands Reference for the exact syntax.
The grep command searches for the pattern specified by the Pattern parameter and writes each matching line to standard output.
For example, to search in a file named pgm.s for a pattern that contains some of the pattern-matching characters *, ^, ?, [, ], \(, \), \{, and \}, in this case lines starting with any lower or upper case letter, enter:
grep "^[a-zA-Z]" pgm.s
This displays all lines in pgm.s that begin with a letter.
To display all lines in a file named sort.c that do not match a pattern, enter:
grep -v bubble sort.c
This displays all lines that do not contain the word bubble in the file sort.c .
To display lines in the output of the ls command that match the string staff , enter:
ls -l | grep staff
See the grep command in the AIX Version 4.3 Commands Reference for the exact syntax.
The sort command alphabetizes or sequences lines in the files specified by the File parameters and writes the result to standard output. If the File parameter specifies more than one file, the sort command concatenates the files and alphabetizes them as one file.
Note: The sort command is case-sensitive and orders uppercase letters before lowercase (this is dependent on the locale).
In the following examples the contents of the file names are:
marta denise joyce endrica melanie
and the contents of the file states are:
texas colorado ohio
To display the sorted contents of the file named names , enter:
sort names
The system displays information similar to the following:
denise endrica joyce marta melanie
To display the sorted contents of the two files names and states , enter:
sort names states
The system displays information similar to the following:
colorado denise endrica joyce marta melanie ohio texas
To replace the original contents of the file named names with its sorted contents, enter:
sort -o names names
This replaces the file names with the same data but in sorted order.
See the sort command in the AIX Version 4.3 Commands Reference for the exact syntax.
The diff command compares text files. It can compare single files or the contents of directories.
When the diff command is run on regular files, and when it compares text files in different directories, the diff command tells which lines must be changed in the files to make them agree.
For example, to compare two files, enter:
diff chap1.bak chap1
This displays the differences between the files chap1.bak and chap1 .
For example, to compare two files while ignoring differences in the amount of white space, enter:
diff -w prog.c.bak prog.c
If two lines differ only in the number of spaces and tabs between words, the diff -w command considers them to be the same.
See the diff command in the AIX Version 4.3 Commands Reference for the exact syntax.
By default, the wc command counts the number of lines, words, and bytes in the files specified by the File parameter. If a file is not specified for the File parameter, standard input is used. The command writes the results to standard output and keeps a total count for all named files. If flags are specified, the ordering of the flags determines the ordering of the output. A word is defined as a string of characters delimited by spaces, tabs, or newline characters.
When files are specified on the command line, their names will be printed along with the counts.
For example, to display the line, word, and byte counts of the file named chap1 , enter:
wc chap1
This displays the number of lines, words, and bytes in the chap1 file.
For example, to display only byte and word counts, enter:
wc -cw chap*
This displays the number of bytes and words in each file where the name starts with chap , and displays the totals.
See the wc command in the AIX Version 4.3 Commands Reference for the exact syntax.
The head command writes to standard output the first few lines of each of the specified files or of the standard input. If no flag is specified with the head command, the first 10 lines are displayed by default.
For example, to display the first five lines of the Test file, enter:
head -5 Test
See the head command in the AIX Version 4.3 Commands Reference for the exact syntax.
The tail command writes the file specified by the File parameter to standard output beginning at a specified point.
For example, to display the last 10 lines of the notes file, enter:
tail notes
For example, to specify the number of lines to start reading from the end of the notes file, enter:
tail -20 notes
For example, to display the notes file one page at a time, beginning with the 200th byte, enter:
tail -c +200 notes | pg
For example, to follow the growth of the file named accounts , enter:
tail -f accounts
This displays the last 10 lines of the accounts file. The tail command continues to display lines as they are added to the accounts file. The display continues until you press the (Ctrl-C) key sequence to stop it.
See the tail command in the AIX Version 4.3 Commands Reference for the exact syntax.
See the tail command in the AIX Version 4.3 Commands Reference for more information and the exact syntax.
The cut command writes to standard output selected bytes, characters, or fields from each line of a file.
For example, to display several fields of each line of a file:
cut -f1,5 -d: /etc/passwd
This displays the login name and full user name fields of the system password file. These are the first and fifth fields (-f1,5 ) separated by colons (-d: ).
For example, if the /etc/passwd file looks like this:
su:*:0:0:User with special privileges:/:/usr/bin/sh daemon:*:1:1::/etc: bin:*:2:2::/usr/bin: sys:*:3:3::/usr/src: adm:*:4:4:System Administrator:/var/adm:/usr/bin/sh pierre:*:200:200:Pierre Harper:/home/pierre:/usr/bin/sh joan:*:202:200:Joan Brown:/home/joan:/usr/bin/sh
the cut command produces:
su:User with special privileges daemon: bin: sys: adm:System Administrator pierre:Pierre Harper joan:Joan Brown
See the cut command in the AIX Version 4.3 Commands Reference for the exact syntax.
The paste command merges the lines of up to 12 files into one file.
For example, if you have a file named names that contains the following text:
rachel jerry mark linda scott
another file named places that contains the following text:
New York Austin Chicago Boca Raton Seattle
and another file named dates that contains the following text:
February 5 March 13 June 21 July 16 November 4
to paste the text of the files names , places , and dates together, enter:
paste names places dates > npd
This creates a file named npd that contains the data from the names file in one column, the places file in another, and the dates file in a third. The npd file now contains:
rachel New York February 5 jerry Austin March 13 mark Chicago June 21 linda Boca Raton July 16 scott Seattle November 4
A tab character separates the name, place, and date on each line. These columns do not always line up because the tab stops are set at every eighth column.
For example, to separate the columns with a character other than a tab, enter:
paste -d"!@" names places dates > npd
This alternates ! and @ as the column separators. If the names , places , and dates files are the same as in example 1, then the npd file contains:
rachel!New York@February 5 jerry!Austin@March 13 mark!Chicago@June 21 linda!Boca Raton@July 16 scott!Seattle@November 4
For example, to list the current directory in four columns, enter:
ls | paste - - - -
Each - (minus) tells the paste command to create a column containing data read from the standard input. The first line is put in the first column, the second line in the second column, and so on.
See the paste command in the AIX Version 4.3 Commands Reference for the exact syntax.
The nl command reads the specified file (standard input by default), numbers the lines in the input, and writes the numbered lines to standard output.
For example, to number only the nonblank lines, enter:
nl chap1
This displays a numbered listing of chap1 , numbering only the nonblank lines in the body sections.
For example, to number all lines:
nl -ba chap1
This numbers all the lines in the file named chap1 , including blank lines.
See the nl command in the AIX Version 4.3 Commands Reference for the exact syntax.
The colrm command removes specified columns from a file. Input is taken from standard input. Output is sent to standard output.
If called with one parameter, the columns of each line from the specified column to the last column are removed. If called with two parameters, the columns from the first specified column to the second specified column are removed.
Note: Column numbering starts with column 1.
For example, to remove columns from the text.fil file, enter:
colrm 6 < text.fil
If text.fil contains:
123456789
then the colrm command displays:
12345
See the colrm command in the AIX Version 4.3 Commands Reference for the exact syntax.
Input and Output Redirection Overview
Printers, Print Jobs, and Queues
Backup Files and Storage Media