お世話になっている Linux のコマンド(2)

ファイルとディレクトリの操作

pwd コマンド

カレントディレクトリを表示する。

$ pwd
/home/vagrant

cd コマンド

カレントディレクトリを変更する。
ディレクトリを表す際に使用する記号は次のとおり。

  • /:ルートディレクトリ
  • ~:ホームディレクトリ
  • .:カレントディレクトリ
  • ..:親ディレクトリ

ルートディレクトリに変更する。

$ cd /

$ pwd
/

絶対パスでディレクトリを変更する。

$ cd /vagrant

$ pwd
/vagrant

ホームディレクトリに変更する。

$ cd ~

$ pwd
/home/vagrant

ホームディレクトリを基準に、相対パスでディレクトリを変更する。

$ cd ~/work

$ pwd
/home/vagrant/work

カレントディレクトリに変更する。

$ cd .

$ pwd
/home/vagrant/work

カレントディレクトリを基準に、相対パスでディレクトリを変更する。

$ cd ./tmp

$ pwd
/home/vagrant/work/tmp

親ディレクトリに変更する。

$ cd ..

$ pwd
/home/vagrant/work

親ディレクトリを基準に、相対パスでディレクトリを変更する。

$ cd ../../../vagrant

$ pwd
/vagrant

ホームディレクトリに変更する。

$ cd

$ pwd
/home/vagrant

ls コマンド

ディレクトリの中身を表示する。

$ ls /vagrant
Vagrantfile

-l オプションで、ディレクトリの中身を詳細に表示する。

$ ls -l /vagrant
total 4
-rwxrwxrwx 1 vagrant vagrant 3092 Jan 27 19:31 Vagrantfile

-a オプションで、「.」(ドット)で始まる隠しフォルダ、隠しファイルを含めて、ディレクトリの中身を表示する。

$ ls -al /vagrant
total 20
drwxrwxrwx  1 vagrant vagrant 8192 Jan 28 14:43 .
drwxr-xr-x 24 root    root    4096 Aug  4 12:54 ..
drwxrwxrwx  1 vagrant vagrant 4096 Jan 28 14:33 .vagrant
-rwxrwxrwx  1 vagrant vagrant 3092 Jan 27 19:31 Vagrantfile

-t オプションで、ディレクトリの中身をタイムスタンプ順に表示する。

$ ls -alt /vagrant
total 20
drwxrwxrwx  1 vagrant vagrant 8192 Jan 28 14:43 .
drwxrwxrwx  1 vagrant vagrant 4096 Jan 28 14:33 .vagrant
-rwxrwxrwx  1 vagrant vagrant 3092 Jan 27 19:31 Vagrantfile
drwxr-xr-x 24 root    root    4096 Aug  4 12:54 ..

-r オプションで、ディレクトリの中身を逆順に表示する。

$ ls -altr /vagrant
total 20
drwxr-xr-x 24 root    root    4096 Aug  4 12:54 ..
-rwxrwxrwx  1 vagrant vagrant 3092 Jan 27 19:31 Vagrantfile
drwxrwxrwx  1 vagrant vagrant 4096 Jan 28 14:33 .vagrant
drwxrwxrwx  1 vagrant vagrant 8192 Jan 28 14:43 .

-S オプションで、ディレクトリの中身をサイズ順に表示する。

$ ls -alS /vagrant
total 20
drwxrwxrwx  1 vagrant vagrant 8192 Jan 28 14:43 .
drwxr-xr-x 24 root    root    4096 Aug  4 12:54 ..
drwxrwxrwx  1 vagrant vagrant 4096 Jan 28 14:33 .vagrant
-rwxrwxrwx  1 vagrant vagrant 3092 Jan 27 19:31 Vagrantfile

-R オプションで、ディレクトリの中身を再帰的に表示する。

$ ls -aR /vagrant
.:
.  ..  .vagrant  Vagrantfile

./.vagrant:
.  ..  machines  rgloader

./.vagrant/machines:
.  ..  default

./.vagrant/machines/default:
.  ..  virtualbox

./.vagrant/machines/default/virtualbox:
.  ..  action_provision  action_set_name  box_meta  creator_uid  id  index_uuid  private_key  synced_folders  vagrant_cwd

./.vagrant/rgloader:
.  ..  loader.rb

mkdir コマンド

ディレクトリを作成する。

$ cd ~/work

$ ls
tmp

$ mkdir dir1

$ ls
dir1  tmp

複数のディレクトリを作成する。

$ mkdir dir2 dir3 dir4

$ ls
dir1  dir2  dir3  dir4  tmp

-p オプションで、階層のディレクトリを作成する。

$ mkdir dir1/aaa/bbb/ccc
mkdir: cannot create directory ‘dir1/aaa/bbb/ccc’: No such file or directory

$ mkdir -p dir1/aaa/bbb/ccc

$ cd dir1/aaa/bbb/ccc

$ pwd
/home/vagrant/work/dir1/aaa/bbb/ccc

rmdir コマンド

空のディレクトリを削除する。

$ cd ~/work

$ ls
dir1  dir2  dir3  dir4  tmp

$ rmdir tmp

$ ls
dir1  dir2  dir3  dir4

複数のディレクトリを削除する。

$ rmdir dir2  dir3  dir4

$ ls
dir1

-p オプションで、階層のディレクトリを削除する。

$ rmdir -p dir1/aaa/bbb/ccc

$ ls

touch コマンド

空のファイルを作成する。

$ cd ~/work

$ ls

$ touch file1

$ ls
file1

複数のファイルを作成する。

$ touch file2 file3 file4

$ ls
file1  file2  file3  file4

ファイルのタイムスタンプを更新する。

$ ls -lt
total 0
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:24 file2
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:24 file3
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:24 file4
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:22 file1

$ touch file4

$ ls -lt
total 0
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:28 file4
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:24 file2
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:24 file3
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:22 file1

ファイルのタイムスタンプを変更する。

$ ls -lt
total 0
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:28 file4
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:24 file2
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:24 file3
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:22 file1

$ touch -d "2022/1/12 12:12" file3

$ ls -lt
total 0
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:28 file4
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:24 file2
-rw-rw-r-- 1 vagrant vagrant 0 Jan 28 16:22 file1
-rw-rw-r-- 1 vagrant vagrant 0 Jan 12 12:12 file3

mv コマンド

ファイルを移動する。

$ cd

$ ls
work

$ ls work
file1  file2  file3  file4

$ mv work/file1 .

$ ls
file1  work

$ ls work
file2  file3  file4

ディレクトリを移動する。

$ ls /vagrant
Vagrantfile

$ ls
file1  work

$ mv work /vagrant

$ ls /vagrant
Vagrantfile  work

$ ls
file1

ファイルをリネームする。

$ ls
file1

$ mv file1 file5

$ ls
file5

ディレクトリをリネームする。

$ ls /vagrant
Vagrantfile  work

$ mv /vagrant/work /vagrant/work2

$ ls /vagrant
Vagrantfile  work2

cp コマンド

ファイルをコピーする。

$ ls
file5

$ cp file5 file6

$ ls
file5  file6

-r オプションで、ディレクトリをコピーする。

$ ls /vagrant
Vagrantfile  work2

$ cp /vagrant/work2 /vagrant/work3
cp: -r not specified; omitting directory '/vagrant/work2'

$ cp -r /vagrant/work2 /vagrant/work3

$ ls /vagrant
Vagrantfile  work2  work3

rm コマンド

ファイルを削除する。

$ ls
file5  file6

$ rm file*

$ ls

-r オプションで、ディレクトリを削除する。

$ ls /vagrant
Vagrantfile  work2  work3

$ rm /vagrant/work2
rm: cannot remove '/vagrant/work2': Is a directory

$ rm -r /vagrant/work2

$ ls /vagrant
Vagrantfile  work3

$ rm -r /vagrant/work3

stat コマンド

ファイルの情報を表示する。

$ stat /vagrant/Vagrantfile
  File: /vagrant/Vagrantfile
  Size: 3092            Blocks: 8          IO Block: 1048576 regular file
Device: 32h/50d Inode: 115         Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/ vagrant)   Gid: ( 1000/ vagrant)
Access: 2022-01-28 21:03:52.891148300 +0000
Modify: 2022-01-27 19:31:35.190844600 +0000
Change: 2022-01-27 19:31:35.190844600 +0000
 Birth: -

ディレクトリの情報を表示する。

$ stat /vagrant
  File: /vagrant
  Size: 8192            Blocks: 16         IO Block: 16384  directory
Device: 32h/50d Inode: 1           Links: 1
Access: (0777/drwxrwxrwx)  Uid: ( 1000/ vagrant)   Gid: ( 1000/ vagrant)
Access: 2022-01-28 21:16:01.115950600 +0000
Modify: 2022-01-28 20:29:44.564814800 +0000
Change: 2022-01-28 20:29:44.564814800 +0000
 Birth: -