次のようなディレクトリ構造があるとしましょう。Parent_dir/<name>/<date>/
Parent_dir
削除されたbashスクリプトを使用して各サブディレクトリに移動/<name>/<date>/
し、サブディレクトリに名前が付けられた空のテキストファイルを作成するにはどうすればよいですか<name>_<date>.txt
?/<name>/<date>/
ベストアンサー1
からParent_dir
:
for d in */*/; do f=${d/\//_}; touch -- "$d"/"${f::-1}.txt"; done
これにより、touch
既存のファイルのタイムスタンプが変更されます。
まず、練習を実行してtouch
次のものを交換できますecho
。
for d in */*/; do f=${d/\//_}; echo -- "$d"/"${f::-1}.txt"; done
for d in */*/
2つのレベルのディレクトリを繰り返してみましょう。f=${d/\//_}
最初のディレクトリ区切り文字を/
次に置き換え、_
出力を変数として保存します。f
"$d"/"${f::-1}.txt"
変数の最後の名前を${f::-1}
削除し、目的のファイル名が次のディレクトリ名に展開されます。/
f
/
inは、変数にディレクトリ区切り文字があるため重複しているd
ことに注意してください。ほとんどすべてのシステムが単一を使用するため、これは問題ではありません。または、次のことができます。/
"$d"/"${f::-1}.txt"
//
/
/
for d in */*/; do f=${d/\//_}; touch -- "${d}${f::-1}.txt"; done