私は、Bash スクリプト (OSX 上) を少し手伝ってもらっています。ソース フォルダーとターゲット フォルダーの 2 つのパラメーターを受け取り、ソース階層内のすべてのファイルをチェックして、それらがターゲット階層に存在するかどうかを確認するスクリプトを作成したいと考えています。つまり、データ DVD を指定して、そこに含まれるファイルが既に内部ドライブにあるかどうかを確認します。
私がこれまでに思いついたのは
#!/bin/bash
if [ $# -ne 2 ]
then
echo "Usage is command sourcedir targetdir"
exit 0
fi
source="$1"
target="$2"
for f in "$( find $source -type f -name '*' -print )"
do
パスなしでファイル名を取得し、それが存在するかどうかを確認する方法が最善かどうかはわかりません。私は本当にスクリプトの初心者です。
編集:これまでに与えられた答えはすべて、コンパクトなコードに関して非常に効率的です。ただし、ターゲット階層内の任意のソース階層全体で見つかったファイルを検索できる必要があります。見つかった場合は、チェックサムと最終更新日などを比較してコメントしたいと思います。見つからない場合は、これに注意したいと思います。目的は、外部メディア上のファイルがファイル サーバーにアップロードされているかどうかを確認することです。