ファイルとディレクトリの操作
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: -