我有 Linux 文件系统中的文件列表。其中一些文件的名称中包含“|”。
如何在 bash 脚本中转义“|”以在 for 循环中执行文件操作(复制、移动)并且不解释管道?
在下面的脚本中,任何带有“|”的文件名都被解释为管道命令。其中 file_list 是具有这些名称的文本文件。
IFS=$'\n'
for file_name in $(cat ${file_list})
do
mkdir -p "${destination_directory}/@${file_name}"
cd "${source_directory}/@${file_name}/"
cp -vR * "${destination_directory}/@${file_name}/"
cd ../
done