将带有扩展名的文件移动到某个位置

2024-03-22

如何将文件夹中的所有 .txt 文件和所有包含的文件夹移动到目标目录中。

最好将它们重命名为它们所在的文件夹,尽管这并不那么重要。我对 bash 不太熟悉。


要递归移动文件,请组合find with mv.

find src/dir/ -name '*.txt' -exec mv -t target/dir/ -- {} +

或者如果在没有 GNU 版本的 UNIX 系统上find,例如 macOS,使用:

find src/dir/ -name '*.txt' -exec mv -- {} target/dir/ ';'

要在移动文件时重命名它们,这会比较棘手。一种方法是使用一个循环"${var//from/to}"替换所有出现的from with to in $var.

find src/dir/ -name '*.txt' -print0 | while IFS= read -rd $'\0' file; do
    mv -- "$file" target/dir/"${file//\//_}"
done

这很丑,因为from是一个斜杠,需要转义为\/.

也可以看看:

  • Unix.SE:理解IFS= read -r line https://unix.stackexchange.com/questions/209123/understanding-ifs-read-r-line
  • BashFAQ:如何逐行(和/或逐字段)读取文件(数据流、变量)? https://mywiki.wooledge.org/BashFAQ/001
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将带有扩展名的文件移动到某个位置 的相关文章

  • 将所有脚本参数复制到另一个变量

    我需要复制所有脚本参数并将它们传递给另一个脚本 我尝试这样做 args printargs sh args echo printargs sh args 但在这种情况下 如果我使用包含空格的参数调用我的父脚本 例如 script sh ar
  • 从重定向到日志文件的程序输出中删除进度条

    我正在运行一个程序 它会输出进度条 我是这样做的 python train py tee train log The train log看起来像下面这样 这是1号线 Training 这是2号线 000 valid 100 2630 263
  • xdotool 类型需要很长时间并导致整个桌面冻结

    我一直在使用xdotool type过去只能在快捷方式上输入耸肩xdotool type 这可行 但总是需要相当长的时间 并导致整个桌面冻结 完全冻结 而不仅仅是输入 几秒钟 不过并没有太打扰我 现在我需要一种方法来从文件中读取内容 对其进
  • 子 shell 何时继承其父 shell 环境?

    什么情况下将shell的环境传递给子shell 子 shell 始终从父 shell 获取所有变量 man bash将描述所有使用子shell的情况 主要是 command command command and command 所谓环境只
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • 访问 bash 命令行参数 $@ 与 $*

    在许多 SO 问题和 bash 教程中 我发现可以通过两种方式访问 bash 脚本中的命令行参数 gt cat testargs sh bin bash echo you passed me echo you passed me 结果是 g
  • IFS 分隔一个字符串,如“Hello”,“World”,“this”,“is,一个无聊”,“line”

    我正在尝试解析 csv 文件 但 IFS 遇到一些问题 该文件包含如下行 Hello World this is a boring line 各列用逗号分隔 因此我尝试使用以下代码分解该行 IFS read r a tempArr lt l
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • `docker run` 输出到 bash 变量 - 奇怪的行为

    我看到一些奇怪的行为从docker run到 bash 变量中 简单的例子 bin bash PWD docker run rm ti ubuntu pwd 2 gt 1 also tried with PWD docker run wit
  • 别名在 Bash 脚本中不起作用[重复]

    这个问题在这里已经有答案了 我有一个可执行文件command sh bin bash alias my command echo ok my command 我的终端是bash 当我像这样运行时 command sh 效果很好 当我像这样运
  • 从 Ruby 运行 shell 命令:在显示输出时捕获输出?

    我有个问题 我想从另一个 ruby 脚本运行一个 ruby 脚本并捕获它的输出信息 同时让它也输出到屏幕上 runner usr bin env ruby print Enter your password password gets ch
  • execlp 多个“程序”

    我想运行类似的东西 cat file tar base64 myprogram c base64 d tar zvt I use execlp运行该进程 当我尝试运行类似的东西时cat它有效 但如果我尝试运行base64 d tar zvt
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • Bash 脚本:#!/bin/bash 是什么意思? [复制]

    这个问题在这里已经有答案了 在 bash 脚本中 什么是 bin bash第一行是什么意思 UPDATE 有区别吗 bin bash and bin sh 这就是所谓的shebang http en wikipedia org wiki S
  • 将 JSON 数组转换为 bash 数组并保留空格

    我想将 JSON 文件转换为 bash 字符串数组 稍后我可以对其进行迭代 我的JSON结构如下 USERID TMCCP CREATED DATE 31 01 2020 17 52 USERID TMCCP CREATED DATE 31
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • apt-get install tzdata 非交互式

    当我尝试 apt get install y tzdata 将显示用于选择时区的命令行选项 我试图在脚本中使用它来进行一些设置 如何在没有用户输入的情况下使 apt get 运行 我知道重新配置 tzdata 我可以做 echo Ameri
  • 如何使用 bash 显示具有两个子文件夹的文件夹?

    我通过 Cygwin 使用 bash 我有一个大文件夹 a 有很多子文件夹 b 这些子文件夹各有一个或两个子文件夹 c 我想找到所有有两个子文件夹 c 的子文件夹 b 并输出它们 结构如下 a b1 c1 b2 c1 c2 b3 c1 c2
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh

随机推荐

  • 如何使用管道分隔符导出到 .csv

    我使用 Google Sheets 电子表格 来合并我的 Gambio 商店的不同来源的文章数据 要导入数据 我需要在 csv 文件中使用管道符号作为分隔符 分隔符 并使用 作为文本分隔符 在用于导出到 csv 的 Google 表格菜单中
  • 我可以在 POSTMAN 中发送二维数组作为参数吗?

    我需要在 POSTMAN 中将参数作为对象数组发送 array field1 html field2 5 field1 css field2 3 我知道数组必须发送为array 但如何将数组中的一项设置为对象呢 我试过这个 array fi
  • 一次播放多个声音?

    我在一个视图上有 6 个声音 然而我想要它 这样我就可以一次播放多个声音 所以你点击声音 1 声音 1 正在播放 然后声音 2 播放 当声音 1 仍在播放时 但此时我按声音1 声音1播放 按声音2 声音2播放 但声音1停止 这是音频部分的代
  • 当我们有 LinkedBlockingQueue 时,为什么还要使用 ConcurrentLinkedQueue?

    我为什么要使用ConcurrentLinkedQueue当我有LinkedBlockingQueue 我知道ConcurrentLinkedQueue是非阻塞的但是LinkedBlockingQueue可以作为ConcurrentLinke
  • 适用于 Windows 的命令行对话框工具

    我需要一个类似于 cdialog 或whiptail 的对话框工具 但可以在 Windows 上运行 我有 MinGW 从源代码编译一些东西是没有问题的 但据我所知 cdialog 和 Whiptail 都包含特定于 UNIX 的代码 因此
  • Spring Boot不加载静态资源

    有很多关于 spring boot 不加载静态资源的问题 并且读完它们 几乎 后我仍然无法解决这个问题 在这个阶段 我选择不使用 Spring Boot 运行 但我仍然想知道问题是什么 我正在使用 Eclipse Java 8 和 Mave
  • 使用 VLC 将文件流式传输为 RTSP

    我需要创建一个可以将 mp3 文件流式传输到另一个设备的服务器 我打算使用 VLC 我查看了 VLC 文档 并对执行此操作的前进方向感到困惑 我找到了这个链接 http www videolan org doc streaming howt
  • T-SQL 到 XML - 每个属性的多个值可以在自己的行中列出吗?

    我目前正在使用 T SQL 将一些数据转换为 XML 我需要在自己的行上列出属性的值 由于某种原因 T SQL 到 XML 不断将值连接在同一行上 示例代码 SELECT Fruits AS Attribute name Apple AS
  • jQuery 中的triggerHandler 与触发器

    出于好奇 jQuery 的目的 用例是什么triggerHandler 据我所知 两者之间唯一 真正 的区别trigger and triggerHandler是本机事件是否触发 以及事件冒泡行为 尽管triggerHandler的冒泡行为
  • RUBY - SSL、基本身份验证和 POST

    我对此感到相当困难 似乎有一些代码片段我似乎无法拼凑在一起 我只是想发布键 值对 但是得到Connection refused connect 2 Errno ECONNREFUSED Help require net http requi
  • Spark Driver 内存计算

    我知道如何计算执行器核心和内存 但是谁能解释一下spark driver memory是根据什么计算的 操作于Dataset比如collect take需要将所有数据移至应用程序的驱动程序进程中 并且在非常大的数据集上执行此操作可能会导致驱
  • MVC 3 授权自定义角色

    我是 MVC 3 新用户 我正在尝试通过 SQL 数据库进行管理 首先 我有客户实体 可以通过管理字段定义管理 该字段是客户实体中的布尔类型 我只想在产品页面中访问管理员 而不是在普通客户中 我想制作 Authorize Roles adm
  • 带字符串的多行内联汇编宏

    我正在尝试实现一个宏 MY MACRO 它存储某个部分中前面带有 32 位整数的字符串 my section 例子 MY MACRO 200 my first string u x 以下是我尝试过的选项以及我面临的问题 我将不胜感激任何帮助
  • 在调试器中跳过表达式主体属性

    有没有类似的 DebuggerStepThrough 属性可用于 C 中的表达式主体属性 例如我想跳过代码 public Byte ByteArray gt Builder CreateArray DebuggerStepThrough 不
  • 如何不在 NextJS 登录页面上渲染布局组件

    如何排除渲染Layout当路由为 login register等等 在 NextJS 中 const MyApp Component pageProps gt return
  • 为什么 javascript 在 if 语句中接受逗号?

    我偶然发现了一些 JavaScript 语法 看起来应该会产生某种解析错误 但实际上却没有 if true true console log splendid else console log horrid splendid if true
  • 隐藏选择的选项组及其内容(所选选项除外)

    我想为国家 地区创建一个选择标签 当我们选择国家 地区时 它会隐藏所有 optgroup 及其国家 地区选择标签的内容 但 optgroup 及其内容与所选国家 地区选项具有相同标签 例如
  • 为什么 std::apply 使用函数模板会失败,但使用具有显式模板参数列表的 lambda 表达式却不会失败?

    在查看 std apply 的引用时参考参数 https en cppreference com w cpp utility apply我们可以看到函数模板不能作为 std apply 的可调用对象传递 让我们考虑以下函数模板 templa
  • 带有 JavaFx 11 和 JDK 11 的 Netbeans 9.0

    我正在尝试在 NetBeans 9 上运行 JavaFX 11 由于 JDK 11 不再具有 JavaFX 我无法让 NetBeans 运行 JavaFX 项目 它说 Failed to automatically set up a Jav
  • 将带有扩展名的文件移动到某个位置

    如何将文件夹中的所有 txt 文件和所有包含的文件夹移动到目标目录中 最好将它们重命名为它们所在的文件夹 尽管这并不那么重要 我对 bash 不太熟悉 要递归移动文件 请组合find with mv find src dir name tx