0kbファイルを検索し、より大きな対応するファイルを見つける方法

0kbファイルを検索し、より大きな対応するファイルを見つける方法

Linux SAMBAサーバーに問題があるため、いくつかの写真(数十のディレクトリにある数百のファイル)が破損しています。多くのソースを含むTime Machineバックアップを持つMacがあります。

MacにSAMBA共有をインストールすると、0kbファイルを検索できます。

find /Volumes/Photos/ f -empty -not -path '*/\.*'

このコマンドを展開してタイムマシンのインストールを検索して、0KBファイルに破損していないファイルがあるかどうかを確認するにはどうすればよいですか?

bashスクリプトが必要だと思います。それともPythonです。

ベストアンサー1

Mac以外のLinuxでのみ以下をテストできますが、非標準は使用していないようです。

-ファイル名がダッシュで始まる場合、またはファイル名に改行文字が含まれている場合、何の影響もありません。

次を含むディレクトリから始めます。

$ find -type f | xargs du -h
4,0K    ./find_empty_dupes.sh
4,0K    ./sub/sub2/corrupt.txt
0   ./sub/corrupt.txt
0   ./sub/empty.txt

そして、次のスクリプトを実行してください。

#!/bin/bash

find . -type f -empty | while IFS= read -r file; do
    if find . -name "$(basename "$file")" -not -empty | grep -q '.'; then
        echo "$file"
    fi
done

テストの実行は次のとおりです。

$ ./find_empty_dupes.sh 
./sub/corrupt.txt

おすすめ記事