さまざまなドキュメントでいっぱいの大きな「myfiles」ディレクトリがあり、その構造を変更したくありません。
したがって、各文書タイプに対して(複数の)異なるディレクトリを作成しました。たとえば、「myfiles」ディレクトリ内の各ファイルのシンボリックリンクと、説明と他のメタデータとともに、各シンボリックリンク(同じファイル名を使用)の異なる説明ファイルを含む「images」ディレクトリがあります.jpg
。.cr2
/ imagesディレクトリのシンボリックリンクは、元のリンクファイルと名前が異なる場合があります。
私は、「myfiles」ディレクトリにあるすべての画像ファイルに「images」ディレクトリへのシンボリックリンクを持たせる最も簡単な方法を見つけようとしています。
フォルダ構造の例を見る
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
結果が出なければならない
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ベストアンサー1
質問を正しく理解したら、イメージにシンボリックリンクがないmyfilesのファイルが必要です。
#!/bin/bash
OIFS="$IFS"
IFS=$'\n'
files="$(find myfiles/ -type f -name '*.jpg' -or -name '*.cr2')"
for f in $files; do
list="$(find -L images/ -xtype l -samefile "$f")"
if [[ "$list" == "" ]]; then
echo "$f does not have symlink."
fi
done
IFS="$OIFS"
この方法では、myfiles / 1ディレクトリにa.jpgファイルがあり、image / 3または単にimage /ディレクトリにそれを指すシンボリックリンクがある場合は警告が表示され、そのファイルはシンボリックリンクが見つからないと報告されません。