如何从文件夹中获取文件名

如何从文件夹中获取文件名

我想为以下逻辑编写一个程序:

  • 获取文件夹中文件的名称
  • 对于每个文件:
    • 打印文件名
    • 将文件移动到另一个新文件夹(名称dd_mm_yy格式相同)

答案1

要从完整路径获取文件名,您可以使用基本名称:

$ basename /home/cuonglm/test.pl 
test.pl

所以你可以这样做:

for f in *; do
  filename="$(basename -- "$f")"
  # Do sftuff here
done

答案2

你的问题不清楚。我假设您希望目标文件名是文件的修改时间,并且您不关心文件的原始名称。如有错误请指正。

bash 脚本。用法:./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"' "{}" \;

相关内容