複数のファイルの.shと.sh.bakを示すfind + lsがあります。
私は3つのファイルがあると思ってそのうちの1つをコピーしましたが、
lsはそのうちの1つである.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
以上一致しません。