linux共通コマンド-4ファイル管理

8582 ワード

以下に、linuxでよく使用されるコマンドの例を示します.
(注:#の後ろにコメントがあり、コマンドを入力するときは書かないでください)
(四)ファイル管理
4.1 cat(ファイルを基本出力に転送)
cat file.txt  #    file.txt   
cat -n file.txt  #    file.txt   , 1            
cat -b file.txt  #    file.txt   , 1            ,       
cat -s file.txt  #              ,          
cat > file.txt  #              file.txt
cat >> file.txt  #              file.txt
cat file1.txt > file2.txt  #   file1.txt        file2.txt
cat file1.txt >> file2.txt  #   file1.txt        file2.txt
cat /dev/null > file.txt  # file.txt    
cat a.txt b.txt > c.txt  #   a.txt b.txt        c.txt
cat proc.tar.gz* > proc.tar.gz #             proc.tar.gz  
cat proc.tar.gz* | tar -xzf - #               

4.2 chgrp(ファイルまたはディレクトリを変更する所属グループ)
chgrp grp proc  # proc          grp
chgrp grp proc -R  #   proc                grp

4.3 chmod(ファイルまたはディレクトリの変更権限)
chmod 755 proc -R  #   proc     rwxr-xr-x
chmod +x proc  #      proc       
chmod -x proc  #       proc      
chmod =r proc  #            r--r--r--

注意:権限番号に関する部分は、下にリストされています:r:権限を読み取り、数値番号は「4」です.w:書き込み権限、数値番号「2」.x:実行権限、数値番号は「1」です.-:権限はありません.番号は「0」です.4.4 chown(ファイルまたはディレクトリの所有者または所属グループを変更)
chown sun proc -R  #   proc                 sun  
chown sun.grp proc -R  #   proc                 sun  ,     grp 
chown sun.grp *  -R  #                    sun  ,     grp 

4.5 cp(ファイルまたはディレクトリのコピー)
cp proc1/file.txt file.txt  #   proc1    file.txt       
cp -r proc1/* proc2  #   proc1            proc2  ,    proc1 proc2         
cp file.txt /home/sun/  #   file.txt   /home/sun/   
cp f1.txt f2.txt /home/sun/  #   f1.txt f2.txt     /home/sun/   
cp ../file.txt file.txt  #          file.txt       
cp ../file.txt .  #  
cp proc1/file.txt new.txt  #   proc1    file.txt       ,     new.txt
cp -P proc1/file.ln new.ln  #             ,    -P  ;    -P  ,    new.ln              ,        
cp -rPu proc1/* proc2  #   proc1            proc2  ,                       ,       ;              ,    proc1 proc2         
cp --parents setup/readme.txt code/  # setup/readme.txt     code   ,       。         :code/setup/readme.txt

4.6 diff(比較ファイルの違い)
diff file1.txt file2.txt  #    file1.txt file2.txt   
diff -r dir1 dir2  #    dir1 dir2   
diff -r --brief dir1 dir2  #    dir1 dir2   ,            
diff -Naur dir1 dir2 > diff.patch #    dir1 dir2   ,    patch。N                 ,               ;a               ,           ;u                 ;r           。

4.7 find(ファイルまたはディレクトリの検索)
find -name 'A.txt'  #          A.txt
find -iname 'A.txt'  #                    A.txt,  :A.txt,A.TXT,a.txt,a.Txt,a.TXT      
find -lname 'sh.ln'  #             sh.ln
find -type d  #             
find -type l  #               
find ~/ -name "A*"  #             A        
find -perm 755 -ls  #             755          
find -empty  #           0       
find -type f -name "*.bak" -exec rm -rf {} \;  #             .bak   ,   
find -type f -name "*.bak" | xargs rm -rf  #  , “|”              
find ! -name '*.java' -type f  #              .java   
find -path './res' -prune -o -name "*.java" -print  #      ,  res  ,       .java   
find \( -path './res' -o -path './ant' \) -prune -o -name "*.java" -print  #      ,  res ant  ,       .java   

4.8 ln(ファイルまたはディレクトリリンクの作成)
ln -s abc.txt abc.ln  # abc.txt       abc.ln
ln -sf abc.txt abc.ln  # abc.txt         abc.ln,  abc.ln   ,    
ln abc.txt abc.ln  # abc.txt       abc.ln

注意:リンク・ファイルは、ソフト・リンクに分けられます.シンボル・リンクとも呼ばれ、ファイルまたはディレクトリのショートカットを作成します.このリンクは、ソースファイルが削除または移動されると無効になります.ハードリンク:このリンクファイルはソースファイルと同じiノードを指すため、ソースファイルの内容が変化すると、ハードリンクのファイルも同期して更新されます.1つのファイルに複数の名前を付けて、異なるディレクトリに置いて、ユーザーの使用を便利にします.このリンクは、ソースファイルが削除または移動された後も通常のファイルとして有効です.4.9 mv(既存のファイルまたはディレクトリの移動または名前変更)
mv abc.txt def.txt  #   abc.txt    def.txt
mv abc.txt proc/  #   abc.txt   proc   
mv abc.txt proc/def.txt  #   abc.txt   proc   ,     def.txt
mv old/* proc  #   old         proc   ,     ,old      ,              proc  

4.10 rm(ファイルまたはディレクトリの削除)
rm abc.txt  #    abc.txt
rm -f abc.txt  #      abc.txt,          
rm -rf proc  #      proc         ,          

4.11 touch(ファイルまたはディレクトリ時間を変更し、空のファイルを作成)
touch abc.txt  #             abc.txt
touch sys/abc.txt  # sys          abc.txt
touch {aa.txt,bb.txt,cc.txt}  #          
touch a.txt b.txt c.txt  #          
touch -d "3/21/2011" Shell.txt  # Shell.txt         2011 3 21 00:00
touch -d "13:56 3/21/2011" Shell.txt  # Shell.txt         2011 3 21 13:56
touch -r a.txt b.txt  # b.txt        a.txt  

付:(時間記録のフォーマットは、以下の"/"のいずれも"-"で代用可能)「16:07 05/22/2005」「04:07 pm 05/22/2005」「04:07 pm 05/22/2005」「16:07 2005/05/22」「04:07 pm 2005/05/22」「04:07 pm 2005/22」「04:07 pm 2005/05/22」4.12 vi(テキストファイル編集)
vi a.txt  # vi          a.txt
vi a.txt b.txt  #      a.txt b.txt

4.13 more(ファイルの内容をページ別に表示)
more a.txt  #      a.txt   ,         ,         ,         

4.14 less(ファイルの内容をページング)
less a.txt  #      a.txt   , j       , k       

4.15 head(ファイルの最初のn行の内容を表示する)
head a.txt  #    a.txt  10 (  )  
head -5 a.txt  #    a.txt  5   
head -5v a.txt  #      a.txt,       5   
head -5c a.txt  #    a.txt  5   

4.16 tail(ファイルの後のn行の内容を表示する)
tail a.txt  #    a.txt  10 (  )  
tail -5 a.txt  #    a.txt  5   
tail -v a.txt  #      a.txt,       10   
tail -5c a.txt  #    a.txt  5   

4.17 grep(ファイル内の条件を満たす文字列を検索)
grep "select" *  #             select          
grep -l "select" *  #        select    
grep -n "select" *  #             select          ,     
grep -n "select" * -r  #                 select          ,     
grep -n "select" * -ri  #  ,        
grep -n "select" * -rI  #                 select          ,     ,         
grep "select" package * -r  #       package             select
grep "select" --include=*.txt * -r  #    .txt      
grep "select" --exclude=*.bak * -r  #         .bak      
grep "select" --exclude-dir=out * -r  #          out        

4.18 sort(テキストファイルの内容を並べ替える)
sort a.txt  # a.txt             ,      
sort a.txt > sort.txt  # a.txt             ,      sort.txt  
sort -r a.txt  # a.txt               ,      

注意:sortコマンドでは、ソースファイルの内容は変更されず、ソートされた内容のみが出力されます.4.19 scp(ローカルサーバとリモートサーバの間でファイルまたはディレクトリをコピー)
scp -P 222 [email protected]:/home/chen/test.log .  # chen           100.130.99.111,    SSH    222,     /home/chen/test.log           
scp -P 222 history.txt [email protected]:/home/chen/  #         history.txt     100.130.99.111    /home/chen/   
scp -P 222 -r [email protected]:/home/chen/pro setup/  # chen           100.130.99.111,    SSH    222,     /home/chen/pro                  setup  

注意:scpコマンドを使用するには、ローカルサーバとリモートサーバがSSHサービスを開始することを前提とします.4.20 stat(ファイル、ディレクトリのinode内容を表示)
stat ab.txt  #    ab.txt inode  

4.21 cut(各行に指定された列の内容を表示)
cut -c 5 ab.txt #  ab.txt     5    
cut -c -5 ab.txt #  ab.txt     1~5    
cut -c 5- ab.txt #  ab.txt     5         
cut -c 2-5 ab.txt #  ab.txt     2~5    

4.22 wc(テキスト統計)
wc ab.txt #    ab.txt     、       
wc -l ab.txt #  ab.txt     
wc -w ab.txt #  ab.txt      
wc -m ab.txt #  ab.txt      
wc -c ab.txt #  ab.txt      
wc -L ab.txt #  ab.txt          

4.23 du(ディレクトリまたはファイルのサイズを表示)
du -a  #              
du -h  # K,M,G   ,        
du -s  #            
du -S  #          ,          
du -sh test  # K,M,G   ,    test          

4.24 split(ファイルを切断)
split proc.tar.gz -b 2m # proc.tar.gz          ,              2m  。     ,       。             , :xaa、xab 
split proc.tar.gz -b 2m -d #    ,               , :x00、x01 
split proc.tar.gz -b 2m -d proc.tar.gz #    ,                , :proc.tar.gz00、proc.tar.gz01 
split a.txt -C 300k -d a.txt # a.txt            ,              300k  ,            

4.25 locate(システム・データベースでファイルまたはディレクトリを検索)
locate a.txt #           a.txt   
locate -e a.txt #           a.txt       
locate -c a.txt #           a.txt