現在のディレクトリへのソフトリンクを作成しました。
$ ln -s "$PWD" math
その後、それを別のディレクトリに移動したいと思いました。
$ mv math/ ~/dirlinks/maths/
私は気づいた
$ mv math ~/dirlinks/maths/
そこで、プロセスが完了する前に Ctrl + C を押してキャンセルしました。
math
の下にdir があり~/dirlinks/maths/
、 の下のファイルがの下にも表示されることから、の下.
にコピーされているようです。しかし、 ではないのでわかりません。 を実行したときに何が起こったのでしょうか?~/dirlinks/maths/math
~/dirlinks/maths/math
.
mv
cp
mv math/ ~/dirlinks/maths/
ありがとう。
答え1
最初のコマンドが何をしたか見てみましょう。現在のディレクトリの絶対パスを指すシンボリック リンクがmath
現在のディレクトリに作成されました。もう少し詳しく調べてみましょう。
user@host:/free$ ls -al /free
total 4
drwxrwxrwt 2 root root 40 Oct 14 10:29 .
drwxr-xr-x 24 root root 4096 Oct 1 22:28 ..
user@host:/free$ ln -vs /free math
‘math’ -> ‘/free’
user@host:/free$ ls -al /free
total 4
drwxrwxrwt 2 root root 60 Oct 14 10:29 .
drwxr-xr-x 24 root root 4096 Oct 1 22:28 ..
lrwxrwxrwx 1 user users 5 Oct 14 10:29 math -> /free
ここで、いくつかのファイルを追加して$PWD
移動を実行します。
user@host:/free$ touch a b
user@host:/free$ mv -vi math/ /tmp/Q
‘math/’ -> ‘/tmp/Q’
‘math/math’ -> ‘/tmp/Q/math’
‘math/b’ -> ‘/tmp/Q/b’
‘math/a’ -> ‘/tmp/Q/a’
removed ‘math/math’
removed ‘math/b’
removed ‘math/a’
mv: cannot remove ‘math/’: No such file or directory
基本的に、 が指しているディレクトリ全体をmath
宛先に移動します。 現在のディレクトリを指しているため、指示した場所に完全に移動されます。 宛先の真上にある場所にいた場合は、興味深いループ問題が発生する可能性があります。