フォルダからファイル名を取得する方法

フォルダからファイル名を取得する方法

次のロジック用のプログラムを作成したいと思います。

  • フォルダ内のファイル名を取得する
  • 各ファイルに対して、次の操作を行います。
    • ファイル名の印刷
    • ファイルを別の新しいフォルダに移動します(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"' "{}" \;

関連情報