
*.pages
、*.key
、の 3 種類のファイルがあります*.numbers
。
- 破損していないファイル:すべてOKです。
- 破損したファイルタイプ I:対応するプログラムはテキストを表示できますが、画像はすべて失われます。
- 破損したファイル タイプ II:対応するプログラムがファイルを開けなくなる場合。
.txt
タイプ I の破損があるすべてのファイルのパスをリストするファイルと、タイプ II の破損があるすべてのファイルのパスをリストするファイルの2 つを作成したいと思います。
find
私はファイルを提供するこのコマンドを思いつきましたタイプII.txtタイプ II 破損のファイルの完全なパス:
find . \( -name "*.pages" -or -name "*.numbers" -or -name "*.key" \) -and -size 102c > type-II.txt
そして、私は別のコマンドを思いつきました。これはfind
私にファイルを提供しますタイプIおよびII.txtタイプIおよびタイプIIの破損ファイルのフルパス
find . -type f -name "Properties.plist" > type-I-and-II.txt
ターミナルでファイルを提供するのに使用するコマンドは何でしょうか?タイプI.txtタイプ I の破損したファイルのパスのみを一覧表示しますか?
答え1
ファイルはタイプII.txtリストはパスとファイル名です./document.pages
。たとえば、タイプIおよびII.txtリストには として記載されています./document.pages/Metadata/Properties.plist
。
このコマンドを使用して作成しますタイプI.txtファイルをリストしますタイプIおよびII.txt記載されていないものタイプII.txt:
sed 's|/Metadata/Properties.plist$||' type-I-and-II.txt | sort - type-II.txt | uniq -u > type-I.txt
このsed
コマンドは、ファイル名から「/Metadata/Properties.plist」を削除します。タイプIおよびII.txtリスト。コマンドの出力はコマンドsed
に渡されますsort
。sort
コマンドは両方のファイルをソートされたリストに結合します。コマンドはuniq
ソートされたリストに一度だけ出現するファイル、つまりタイプIおよびII.txtしかし、タイプII.txt。