Linux: 移动文件时重新创建父目录
Linux: Recreate parent directories when moving files
在我的工作目录中,我有几个文件夹,其中包含数百个不同类型的文件(.txt、.csv、.png...)。这些文件夹的结构如下例所示:
myDir/
myDir/Folder_1/ ... file_1.txt, file_2.csv, file_3.txt
myDir/Folder_2/ ...
myDir/Folder_3/ ...
...
我需要将所有 .csv 文件移动到一个新目录,但要保持相同的目录树,如下所示:
myDir/
myDir/Folder_1/ ...
myDir/Folder_2/ ...
...
myDir/New/
myDir/New/Folder_1/ ... file_2.csv
myDir/New/Folder_2/ ...
...
我发现 cp 命令有 --parents
标志可以做我想做的事,但我不想复制这些文件,我只想移动它们。
我之前搜索过这个问题,找到了这个:Bash script for moving files and their parent directory
这和我需要做的很相似,但我无法理解。
检查以下代码段打印出的命令。如果他们按照您的意愿行事,则只需删除 echo
(在 mkdir
和 mv
之前)。
for path in myDir/*; do
[[ -d "$path" ]] && echo mkdir -p "myDir/New/${path#myDir/}"
done
for csv in myDir/*/*.csv; do
echo mv "$csv" "myDir/New/${csv#myDir/}"
done
在我的工作目录中,我有几个文件夹,其中包含数百个不同类型的文件(.txt、.csv、.png...)。这些文件夹的结构如下例所示:
myDir/
myDir/Folder_1/ ... file_1.txt, file_2.csv, file_3.txt
myDir/Folder_2/ ...
myDir/Folder_3/ ...
...
我需要将所有 .csv 文件移动到一个新目录,但要保持相同的目录树,如下所示:
myDir/
myDir/Folder_1/ ...
myDir/Folder_2/ ...
...
myDir/New/
myDir/New/Folder_1/ ... file_2.csv
myDir/New/Folder_2/ ...
...
我发现 cp 命令有 --parents
标志可以做我想做的事,但我不想复制这些文件,我只想移动它们。
我之前搜索过这个问题,找到了这个:Bash script for moving files and their parent directory
这和我需要做的很相似,但我无法理解。
检查以下代码段打印出的命令。如果他们按照您的意愿行事,则只需删除 echo
(在 mkdir
和 mv
之前)。
for path in myDir/*; do
[[ -d "$path" ]] && echo mkdir -p "myDir/New/${path#myDir/}"
done
for csv in myDir/*/*.csv; do
echo mv "$csv" "myDir/New/${csv#myDir/}"
done