次のロジック用のプログラムを作成したいと思います。
- フォルダ内のファイル名を取得する
- 各ファイルに対して、次の操作を行います。
- ファイル名の印刷
- ファイルを別の新しいフォルダに移動します(
dd_mm_yy
同じ名前の形式)。
答え1
フルパスからファイル名を取得するには、次のものを使用できます。基本名:
$ basename /home/cuonglm/test.pl
test.pl
だからあなたはこれを行うことができます:
for f in *; do
filename="$(basename -- "$f")"
# Do sftuff here
done
答え2
あなたの質問は不明です。私は、ファイル名をファイルの変更時刻にし、ファイルの元の名前は気にしないと仮定します。エラーがあれば訂正してください。
バッシュスクリプト。使用法:./script.sh original_dir dest_dir
#!/bin/bash
find "$1" -maxdepth 1 -exec bash -c '
echo "$1"
export LANG=C
name=$(stat -c "%y" . | sed -r "s/..(..)-(..)-(..).*/\3-\2-\1/")
mv -iT $0 '"$1"'/"$name"' "{}" \;