File/Directory

7483 ワード

Ⅰ. パス


1.絶対パス(Absolute Path)

  • /ルートから
  • ex) /usr/local
  • 2.相対パス(Relative Path)

  • '.' 先頭の経路で
  • '.' 省略可能
  • ex) ./teamdev2/jsg2 or teamdev2/jsg2
  • Ⅱ. ディレクトリ関連コマンド


    1.現在のディレクトリを表示

  • $ pwd : (print working directory)
  • jsg@jsg-ubuntu:~$ pwd
    /home/jsg

    2.ディレクトリの変更

  • $ cd [directory] : (change directory)
  • 省略記号のマイクロ/ルートパス~or省略記号のメインパス-前のパス...前のレベルのパス
    jsg@jsg-ubuntu:~$ pwd			# 현재 경로
    /home/jsg
    jsg@jsg-ubuntu:~$ cd /tmp		# /로 시작하는 절대 경로
    jsg@jsg-ubuntu:/tmp$ cd ../usr		# 한 단계 위로 이동 후 usr로 이동
    jsg@jsg-ubuntu:/usr$ cd -		# 이전 경로인 /tmp로 이동
    /tmp
    jsg@jsg-ubuntu:/tmp$ cd ~		# 홈 디렉토리로 이동
    jsg@jsg-ubuntu:~$ cd ./문서		# 홈 디렉토리에 대한 상대 경로
    jsg@jsg-ubuntu:~/문서$

    3.ディレクトリ内のファイルリスト

  • $ ls [option] [file_name]
  • ファイルが指定されていなければ現在ディレクトリ
  • オプションの説明-非表示ファイルの表示-l詳細の表示-t時間順-r逆順
  • ls-lビュー
  • file access mode

    4.ディレクトリの作成

  • $ mkdir [-p] file_name (make directory)
  • -pオプションで1つ以上のディレクトリを作成できます
  • jsg@jsg-ubuntu:~$ ls
    examples.desktop  공개  다운로드  문서  바탕화면  비디오  사진  음악  템플릿
    jsg@jsg-ubuntu:~$ mkdir testdir; ls
    examples.desktop  공개      문서      비디오  음악
    testdir           다운로드  바탕화면  사진    템플릿

    5.ディレクトリの削除

  • $ rmdir directoryコマンドですが、ディレクトリは空でなければ使用できません
  • $ rm -rf file_nameより常用
  • jsg@jsg-ubuntu:~$ rm -rf testdir
    jsg@jsg-ubuntu:~$ ls
    examples.desktop  공개  다운로드  문서  바탕화면  비디오  사진  음악  템플릿

    ファイルに関するコマンド


    1.簡単なテキストファイルを作成する

  • $ echo "Hello World" > testdir/hello.txt
  • jsg@jsg-ubuntu:~$ echo "Hello World" > testdir/hello.txt; ls testdir
    hello.txt

    2.テキストファイルの出力

  • $ cat testdir/hello.txt
  • jsg@jsg-ubuntu:~$  cat testdir/hello.txt
    Hello World

    3.ファイルの変更

  • $ chmod XXX file_name:(changemode)権限変更
  • jsg@jsg-ubuntu:~$ chmod 664 testdir; ls -l testdir
    ls: 'testdir/hello.txt'에 접근할 수 없습니다: 허가 거부
    합계 0
    -????????? ? ? ? ?             ? hello.txt
  • # chown user_name file_name:(変更所有者)所有者変更
  • root@jsg-ubuntu:/home/jsg# chown jsg2 testdir/hello.txt
    root@jsg-ubuntu:/home/jsg# ls -l testdir/hello.txt
    -rw-rw-r-- 1 jsg2 jsg 12 Dec 10 00:24 testdir/hello.txt
  • # chgrp group_name file_name:(変更グループ)グループ変更
  • root@jsg-ubuntu:/home/jsg# chgrp teamdev2 testdir/hello.txt
    root@jsg-ubuntu:/home/jsg# ls -l testdir/hello.txt
    -rw-rw-r-- 1 jsg2 teamdev2 12 Dec 10 00:24 testdir/hello.txt

    4.ファイル情報の確認

  • $ file file_name:タイプ確認、magicデータ読み出し
  • jsg@jsg-ubuntu:~$ file testdir/hello.txt
    testdir/hello.txt: ASCII text
  • $ stat file_name:ファイルメタデータ出力
  • jsg@jsg-ubuntu:~$ stat testdir/hello.txt
      File: 'testdir/hello.txt'
      Size: 12        	Blocks: 8          IO Block: 4096   일반 파일
    Device: 801h/2049d	Inode: 1175830     Links: 1
    Access: (0664/-rw-rw-r--)  Uid: ( 1000/     jsg)   Gid: ( 1000/     jsg)
    Access: 2020-12-10 01:38:30.838601254 +0900
    Modify: 2020-12-10 00:24:52.762704113 +0900
    Change: 2020-12-10 01:07:50.481252194 +0900
     Birth: -

    5.ファイルの更新

  • $ touch file_name:メタデータの更新
  • ファイルが存在しない場合は生成
  • jsg@jsg-ubuntu:~$ stat testdir/hello.txt 
      File: 'testdir/hello.txt'
      Size: 0         	Blocks: 0          IO Block: 4096   일반 빈 파일
    Device: 801h/2049d	Inode: 1175791     Links: 1
    Access: (0664/-rw-rw-r--)  Uid: ( 1000/     jsg)   Gid: ( 1000/     jsg)
    Access: 2020-12-10 01:54:39.796622302 +0900
    Modify: 2020-12-10 01:54:39.796622302 +0900
    Change: 2020-12-10 01:54:39.796622302 +0900
     Birth: -
    
    jsg@jsg-ubuntu:~$ touch testdir/hello.txt
    jsg@jsg-ubuntu:~$ stat testdir/hello.txt
      File: 'testdir/hello.txt'
      Size: 0         	Blocks: 0          IO Block: 4096   일반 빈 파일
    Device: 801h/2049d	Inode: 1175791     Links: 1
    Access: (0664/-rw-rw-r--)  Uid: ( 1000/     jsg)   Gid: ( 1000/     jsg)
    Access: 2020-12-10 01:55:19.872828519 +0900
    Modify: 2020-12-10 01:55:19.872828519 +0900
    Change: 2020-12-10 01:55:19.872828519 +0900
     Birth: -

    6.ファイルのコピー

  • $ cp file new_file : (copy)
  • jsg@jsg-ubuntu:~$ cp -r testdir testdir2
    jsg@jsg-ubuntu:~$ ls
    examples.desktop  testdir2  다운로드  바탕화면  사진  템플릿
    testdir           공개      문서      비디오    음악

    7.ファイルの移動

  • $ mv file new_file : (move)
  • 名前変更にも使用可能
  • jsg@jsg-ubuntu:~$ mv testdir2/hello.txt testdir/hello2.txt; ls testdir
    hello.txt  hello2.txt

    8.ファイルの削除

  • $ rm file_name (remove)
  • $ rmdir file_name削除するにはディレクトリが空でなければならないため、あまり使われない
  • jsg@jsg-ubuntu:~$ rm testdir/hello2.txt; ls testdir
    hello.txt

    9.ファイルの検索

  • $ find directory [expression]:該当するファイルを目次で検索
  • 式の説明-name file name名を使用して検索します.「*」が使用可能-size numberファイルサイズで検索します.+-コード可能-mtime timeから検索(day)-min timeから検索(min)-inum numberinode番号検索-samefile file nameハードリンク検索-maxdepthlevel最大深さ、複数の条件で最前-mindepthlevel最小深さ、複数の条件で最前-a(省略)条件とAND接続-o条件を検索
  • サンプルのファイル作成
  • jsg@jsg-ubuntu:~$ mkdir ~/temp
    mkdir: `/home/jsg/temp' 디렉토리를 만들 수 없습니다: 파일이 있습니다
    jsg@jsg-ubuntu:~$ cd temp
    jsg@jsg-ubuntu:~/temp$ for i in {8..21}; do dd bs=100000 count=$i \
    if=/dev/zero of=./${i}00k.dat; done
    
    jsg@jsg-ubuntu:~/temp$ ls -l
    합계 19852
    -rw-rw-r-- 1 jsg jsg 1000000 12월 10 02:11 1000k.dat
    -rw-rw-r-- 1 jsg jsg 1100000 12월 10 02:11 1100k.dat
    -rw-rw-r-- 1 jsg jsg 1200000 12월 10 02:11 1200k.dat
    -rw-rw-r-- 1 jsg jsg 1300000 12월 10 02:11 1300k.dat
    -rw-rw-r-- 1 jsg jsg 1400000 12월 10 02:11 1400k.dat
    -rw-rw-r-- 1 jsg jsg 1500000 12월 10 02:11 1500k.dat
    -rw-rw-r-- 1 jsg jsg 1600000 12월 10 02:11 1600k.dat
    -rw-rw-r-- 1 jsg jsg 1700000 12월 10 02:11 1700k.dat
    -rw-rw-r-- 1 jsg jsg 1800000 12월 10 02:11 1800k.dat
    -rw-rw-r-- 1 jsg jsg 1900000 12월 10 02:11 1900k.dat
    -rw-rw-r-- 1 jsg jsg 2000000 12월 10 02:11 2000k.dat
    -rw-rw-r-- 1 jsg jsg 2100000 12월 10 02:11 2100k.dat
    -rw-rw-r-- 1 jsg jsg  800000 12월 10 02:11 800k.dat
    -rw-rw-r-- 1 jsg jsg  900000 12월 10 02:11 900k.dat
  • findコマンドの結果値
  • コマンド結果$find-name '[89]*k.dat'./900k.dat ./800k.dat$ find . -name '*k.dat' -a -size 1M./900k.dat ./800k.dat ./1000k.dat$ find . -name '*k.dat' -size +1500k -size -1800k./1600k.dat ./1800k.dat ./1700k.dat
  • $ find ... -exec 명령어 \;:find命令後タスク指示
  • 終了\;1人1個、終了\+最終運転であれば
  • jsg@jsg-ubuntu:~/temp$  find . -name "*k.dat" -exec rm {} \;
    jsg@jsg-ubuntu:~/temp$ ls -a
    .  ..