여러 파일의 .sh 및 .sh.bak를 보여주는 find + ls가 있습니다.
그런 식으로 3개의 파일이 있을 것이라고 생각하여 그 중 하나를 복사했지만
ls는 그 중 하나인 .sh.bak를 표시하지 않았습니다.
기록에서 find + ls를 반복한 후 복사본을 비교합니다.
파일 2개 보기:
[root@localhost jeos]# find / -name del-non-*-locales.sh* -execdir ls -lh {} \;
-rwxr-xr-x. 1 root root 4.4K Dec 17 2016 /root/proj/vm/locale/backups/del-non-eng-locales.sh.bak
-rwxr-xr-x. 1 root root 4.4K Dec 17 2016 /root/proj/host.setup/manual/del-non-english-locales.sh
1개 복사
[root@localhost jeos]# cp ~/proj/host.setup/manual/del-non-english-locales.sh .
위쪽 화살표 + Enter...이제 파일이 3개 보일 줄 알았는데
[root@localhost jeos]# find / -name del-non-*-locales.sh* -execdir ls -lh {} \;
-rwxr-xr-x. 1 root root 4.4K Dec 17 2016 /root/proj/host.setup/manual/del-non-english-locales.sh
-rwxr-xr-x. 1 root root 4.4K Nov 9 11:05 /root/proj/jeos/del-non-english-locales.sh
find + ls는 아무것도 변경하지 않았으며 여기에 파일이 표시되어 종료되었습니다.
[root@localhost jeos]# ls -lh /root/proj/vm/locale/backups/del-non-eng-locales.sh.bak
-rwxr-xr-x. 1 root root 4.4K Dec 17 2016 /root/proj/vm/locale/backups/del-non-eng-locales.sh.bak
답변1
견적이 필요합니다 del-non-*-locales.sh*
.
첫 번째 실행은 현재 디렉터리에 일치하는 파일이 없기 때문에 작동하므로 del-non-*-locales.sh*
패턴은 기본적으로 자체적으로(별표 및 모두 포함) 확장됩니다.
~/proj/host.setup/manual/del-non-english-locales.sh
현재 디렉토리에 복사한 후 del-non-*-locales.sh*
로 확장되므로 del-non-english-locales.sh
실제로는 대신 정확한 이름을 검색하게 됩니다 del-non-*-locales.sh*
. 그렇기 때문에 del-non-eng-locales.sh.bak
더 이상 일치하지 않습니다.