--strip-trailing-slashes
이 명령의 옵션이 혼란스럽다고 생각합니다 mv
.
공식 GNU 매뉴얼에 따르면, 이 옵션은 "소스 인수에 슬래시가 있고 디렉토리에 대한 기호 링크를 지정할 때 유용합니다". 그래서 나는 다음을 시도합니다.
$ mkdir a
$ ln -s a b
$ mv --strip-trailing-slashes b/ c
나는 을 얻었고 mv: cannot move 'b' to 'c': Not a directory
, 이름을 b
로 바꾸고 싶었습니다 c
.
제가 이 옵션을 잘못 이해한 걸까요? 이 옵션을 사용하는 방법에 대한 예가 있습니까?
답변1
명령이 mv
때때로 혼란스러울 수 있습니다.
mv
명령에는 두 가지 옵션이 있습니다둘매개변수:
mv one two
하나, 기본 설정은 다음과 같습니다.문서 one
디렉토리를 입력하십시오 two
.
디렉터리가 two
존재하지 않으면 mv one two
이동으로 해석될 수 있습니다.문서 one
도착하다문서 two
(이름 바꾸기). 물론 파일이 two
이미 존재하는 경우 해당 파일을 덮어쓸 것인지(또는 다른 옵션) 묻는 메시지가 사용자에게 표시될 수 있습니다.
--strip-trailing-slash
이 옵션을 사용하면 이동 잠금을 의미하는 것 같습니다.one
문서가 되다목차(이름 변경이 아님).
디렉토리를 사용할 때 여전히 디렉토리 이름을 바꾸려면 --strip-trailing-slash
디렉토리가 존재하지 않는다고 선언해야 합니다.
mv -T one two
예:
$ mkdir one
$ ln -s one two
$ mv two/ yes
mv: cannot move 'two/' to 'yes': Not a directory
$ mv --strip-trailing-slash two/ yes
mv: cannot move 'two' to 'yes': Not a directory
$ mv -T --strip-trailing-slash two/ yes
$ ls -la
total 12
drwxr-xr-x 3 isaac isaac 4096 Jul 01 03:38 .
drwxr-xr-x 6 isaac isaac 4096 Jul 01 03:37 ..
drwxr-xr-x 2 isaac isaac 4096 Jul 01 03:38 one
lrwxrwxrwx 1 isaac isaac 3 Jul 01 03:38 yes -> one