多数のファイルを含むディレクトリがあります。このディレクトリをコピーしようとすると、ファイルをコピーできない(破損していますか?)というメッセージが表示され、コピーが停止します。
そのディレクトリツリー内のすべてのファイルを確認してコピーできない、または破損したすべてのファイルを一覧表示するために端末に入力できるコマンドはありますか?今はファイルをコピーしたくありません。試してみると、ファイルをコピー/読み取りできないことを確認するためです。
私はOS X Mountain Lionを使用していますが、すべてのUNIXコマンドが機能したいと思います。
ありがとうございます。
注:破損は、読み取りまたはコピーできないファイルを意味します。
答え1
rsync
エラーによってシャットダウンが発生した場合は、シャットダウンポイントでレプリケーションを再開する機能を使用してディレクトリをレプリケートするために使用できますrsync
。rsyncの
--dry-run
オプションを使用すると、実際に何もコピーせずにコピーする内容を確認できます。--stats
オプション--progress
も便利です。または読み--human-readable
やすく-h
なります。例えば
rsync --dry-run -avh --stats --progress /path/to/src/ /path/to/destination/
Mac OS Xにrsyncがデフォルトでインストールされているかどうかはわかりませんが、Macで試したことがあるので、確実に使用できることがわかります。
サブディレクトリのファイルを読み取ることができるかどうかをすばやく確認するには、出力が削除されるため、
grep -r XXX /path/to/directory/ > /dev/null
検索正規表現は重要ではありません。STDOUTは/ dev / nullにリダイレクトされるため、エラーのみが表示されます。
私がここを選択した唯一の理由は、再帰オプションによる
grep
ものです-r
。これに加えて、grep
一緒に使用できる他のコマンドがたくさんありますfind
。
答え2
を使用するプログラムを作成しましたgrep
。
macOSがオプションをサポートgrep
していない場合は、GNUをインストールしてください。-a
-r
grep
自分で作った:
brew install grep
私のfindCorruptedFilesIn
機能:
findCorruptedFilesIn () {
local grep=$(which ggrep 2>/dev/null || which grep)
time $grep -a -r . "$@" > /dev/null
}
次のように使用できます。
$ findCorruptedFilesIn Videos/
/bin/grep: Videos/CHRIST/Joel_Osteen/Daily_Wisdom_TV/Positioning_Yourself_to_Prosper_TD_Jakes__18__sICQGp3iIfc__youtube_com.mp4: Input/output error
real 17m25.045s
user 0m0.654s
sys 1m46.749s