自动复制 bash 中的文件
Automating copying files in bash
我有一个文件和目录列表(在一个文本文件中),我需要将其复制到稍微不同的路径,我如何使用 bash 执行此操作?例如文件列表都是这样的
html/app/design-old/[path-to-file-or-directory]
我希望将它们全部复制到
html/app/design/[same-path-to-file-or-directory]
谢谢
html是在根目录还是当前目录?假设它在根目录中,而您只想从 "default" 目录复制一个文件...
mkdir /html/app/design
mkdir /html/app/design/frontend
mkdir /html/app/design/frontend/base
mkdir /html/app/design/frontend/base/default
cd /html/app/design-old/frontend/base/default
cp filename ../../../../design/frontend/base/default
如果要复制目录,请将最后一行更改为
cp directoryname ../../../../design/frontend/base/default -r
注意目录复制的-r。
假设名为 list.txt
的文件中的路径列表,
每行一个文件名,
这应该有效:
source_dir=html/app/design-old
target_dir=html/app/design
while read path; do
newpath=${path/$source_dir/$target_dir}
target_basedir=$(dirname "$newpath")
mkdir -p "$target_basedir"
cp -r "$path" "$target_basedir/"
done < list.txt
while read filename; do
cp -r "$source_dir/$filename" "$target_dir/${filename%/*}"; done < nothelp2.txt
我有一个文件和目录列表(在一个文本文件中),我需要将其复制到稍微不同的路径,我如何使用 bash 执行此操作?例如文件列表都是这样的
html/app/design-old/[path-to-file-or-directory]
我希望将它们全部复制到
html/app/design/[same-path-to-file-or-directory]
谢谢
html是在根目录还是当前目录?假设它在根目录中,而您只想从 "default" 目录复制一个文件...
mkdir /html/app/design
mkdir /html/app/design/frontend
mkdir /html/app/design/frontend/base
mkdir /html/app/design/frontend/base/default
cd /html/app/design-old/frontend/base/default
cp filename ../../../../design/frontend/base/default
如果要复制目录,请将最后一行更改为
cp directoryname ../../../../design/frontend/base/default -r
注意目录复制的-r。
假设名为 list.txt
的文件中的路径列表,
每行一个文件名,
这应该有效:
source_dir=html/app/design-old
target_dir=html/app/design
while read path; do
newpath=${path/$source_dir/$target_dir}
target_basedir=$(dirname "$newpath")
mkdir -p "$target_basedir"
cp -r "$path" "$target_basedir/"
done < list.txt
while read filename; do
cp -r "$source_dir/$filename" "$target_dir/${filename%/*}"; done < nothelp2.txt