如何在 Bash 脚本中的文件名中转义“|”?

如何在 Bash 脚本中的文件名中转义“|”?

我有 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

相关内容