我正在编写一个脚本来创建一个以今天的日期 (yyyy_mm_dd) 命名的目录,然后将所有以今天的日期结尾的文件移动到该目录。有没有更好的方法将文件移动到目录,因为我所做的也选择了目录。
now=$(date '+%Y_%m_%d')
mkdir $now
mv *$now $now/
答案1
mv *?"$now" "$now/."
?
将通过要求时间戳前面至少有一个字符 ( ) 来确保您刚刚创建的目录不会被选择进行移动。
答案2
该find
命令可以过滤文件类型和文件名。
所以我认为这会做你想要的:
now=$(date '+%Y_%m_%d')
find . -name "*$now" -type f -print0 | xargs -0 mv -t $now/
不过,在大批量运行之前,您可能需要考虑文件名中是否存在任何奇怪之处(例如包含日期字符串的其他目录)。