ファイル名を変更し、親ディレクトリ名をファイルに追加しようとします(そして「Photos」という名前の新しいフォルダに移動します)。
私はこれをしようとしてきました。名前を変更するそしてミリメートル波ただし、次の例では、ディレクトリAにあるときにこれを行うのに問題があります。
$ pwd
/A
$ tree
.
├── 1.jpg
├── 2.jpg
└── 3.jpg
ただし、フォルダ階層の1つ以上のレベルで名前変更を実行すると正常に動作します。
$ pwd
/
$ tree
.
└── A
├── 1.jpg
├── 2.jpg
└── 3.jpg
$ rename 's|(.*)/(.*)|$1/Photos/$1 - $2|' */*.jpg -p
$ tree
.
└── A
└── Photos
├── A\ -\ 1.jpg
├── A\ -\ 2.jpg
└── A\ -\ 3.jpg
例では、「A」ディレクトリにあるときにこれをどのように達成できますか?
ベストアンサー1
rename
まあ、これは私が持っているよりもエキゾチックなので、まずsedを試してみてください。
Dir=$(basename "$PWD")
mkdir -p Photos
ls *.jpg|sed 's|\(.*\)|mv "\1" "Photos/'"$Dir"' - \1"|' |sh
私はこれが次のように名前を変更すると解釈されると思います。
Dir=$(basename "$PWD")
rename 's|(.*)|Photos/'"$Dir"' - $1|' *.jpg -p