我有一个目录有100个子目录,每个目录有100个文件。每个子目录中的每天文件数都会增加一个。我想在Linux中编写一个脚本,将所有100个子目录复制到另一个只有一个最新文件的位置。如何做到这一点?
答案 0 :(得分:1)
从当前目录(包含100个子目录)中,您可以将脚本运行为:
for f in `find ./* -maxdepth 0 -type d`
do
if [ $f != "./directory_to_copy" ]
then
cp $f/`ls -t $f | head -1` ./directory_to_copy
fi
done
如果你的out目录不在当前目录中,你可以跳过If语句,你可以指定需要在cp语句中存储名称的目录的相对路径或绝对路径:
cp $f/`ls -t $f | head -1` path_to_directory/name_of_directory
答案 1 :(得分:0)
您可以将block修改为:
if [ $f != "./directory_to_cop" ]
then
mkdir ./directory_to_copy/$f 2>/dev/null
cp $f/`ls -t $f | head -1` ./directory_to_copy/$f
fi
如果out目录不在当前目录中:
mkdir path_to_directory/name_of_directory/$f 2>/dev/null
cp $f/`ls -t | head -1` path_to_directory/name_of_directory/$f