将最新修改的文件从所有子目录复制到具有相同子目录结构的新目录
Copy latest modified file from all subdirectories to a new directory having same sub directory structure
我有一个包含 100 个子目录的目录,每个子目录包含 100 个文件。每个子目录中的文件数每天增加一个。我想在 Linux 中编写一个脚本,将所有 100 个子目录复制到另一个位置,每个子目录只有一个最新文件。如何做到这一点?
从您的当前目录(有 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
如果你的输出目录不在当前目录中,你可以跳过 If 语句,你可以在 cp 语句中指定你需要存储的目录的相对路径或绝对路径,名称为:
cp $f/`ls -t $f | head -1` path_to_directory/name_of_directory
您可以将 if 块修改为:
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
如果输出目录不在当前目录中:
mkdir path_to_directory/name_of_directory/$f 2>/dev/null
cp $f/`ls -t | head -1` path_to_directory/name_of_directory/$f
我有一个包含 100 个子目录的目录,每个子目录包含 100 个文件。每个子目录中的文件数每天增加一个。我想在 Linux 中编写一个脚本,将所有 100 个子目录复制到另一个位置,每个子目录只有一个最新文件。如何做到这一点?
从您的当前目录(有 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
如果你的输出目录不在当前目录中,你可以跳过 If 语句,你可以在 cp 语句中指定你需要存储的目录的相对路径或绝对路径,名称为:
cp $f/`ls -t $f | head -1` path_to_directory/name_of_directory
您可以将 if 块修改为:
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
如果输出目录不在当前目录中:
mkdir path_to_directory/name_of_directory/$f 2>/dev/null
cp $f/`ls -t | head -1` path_to_directory/name_of_directory/$f