linux - 通过从文本文件中读取文件名从目录中移动文件

标签 linux bash shell ubuntu for-loop

我想要一个能够读取包含文件夹名称的文本文件内容并将文件夹从其目录移动到特定文件夹的脚本。这是我的脚本:

     #!/bin/bash
     for i in $(cat /folder/collected/folders.txt)
      do
       mv /fromfilelocation/$i /folder/Collected/
      done

这个脚本部分工作,因为它只复制文本文件中的最后一个文件夹,至于其他文件夹,它给出错误“不可能:找不到数据或目录”但是文件夹在那里并且根据错误文件夹目录正确显示。 名称没有特殊字符或空格,如果是完整目录或文本文件中只有文件夹名称,则会出现相同的错误。 显示的错误是找不到文件或目录,但它显示正确的目录到带有“$”\r 的文件夹。例如/fromfilelocation/foldername'$'\r.

最佳答案

这是由于换行字符导致的错误。对具有目录名称的文件执行 dos2unix,然后再次运行脚本。脚本没有问题

关于linux - 通过从文本文件中读取文件名从目录中移动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46631054/

相关文章:

Linux 驱动程序 -> insmod -> lsmod 显示驱动程序,但/dev 中没有条目?

linux - 提取复杂字符串的片段

linux - 是否可以用 POSIX sh(1) 复制 cat(1)?

shell - 将 shell 变量替换为 awk 模式,查看文件扫描

C:缓冲区溢出,更改传递的变量

linux - Erlang:如何在控制 Erlang 进程崩溃时使连接的外部操作系统进程自动死亡?

regex - 匹配非 ascii 字符而不重复使用外部二进制文件

node.js - bash:create-react-app:找不到命令(很确定这是我的 $PATH)

linux - logrotate:仅将新的压缩文件移动到 S3

shell - 如何分析Sonar中的sh文件?