首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用xargs在带有单引号和双引号的文件名上运行bash -c

使用xargs在带有单引号和双引号的文件名上运行bash -c可以通过以下步骤实现:

  1. 首先,确保你已经安装了xargs和bash。如果没有安装,可以使用适合你的操作系统的包管理器进行安装。
  2. 创建一个包含需要运行的命令的脚本文件,比如script.sh。在脚本文件中,使用$1来引用传递给脚本的文件名参数。例如,脚本内容可以是:
代码语言:txt
复制
#!/bin/bash
echo "Processing file: $1"
# 在这里添加你需要执行的命令
  1. 使用xargs命令来读取文件名,并将其传递给bash -c命令来执行脚本。使用单引号和双引号来处理文件名中的特殊字符。例如,假设文件名列表保存在filelist.txt文件中,可以运行以下命令:
代码语言:txt
复制
cat filelist.txt | xargs -I {} bash -c 'bash script.sh "{}"'

这将逐行读取filelist.txt文件中的文件名,并将其传递给bash -c命令来执行脚本。脚本中的$1将被替换为当前文件名。

请注意,上述命令中的双引号用于将文件名作为一个整体传递给脚本。如果你的文件名中包含空格或其他特殊字符,这样做是必要的。

希望这个答案对你有帮助!如果你需要更多关于云计算或其他相关主题的信息,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux中操作带有空格和特殊字符的文件名

在大多数情况下,文件 / 文件夹名称与文件 / 文件夹的内容相关,并以数字和字符开头。字母数字文件名非常常见并且使用非常广泛,但是当我们必须处理包含特殊字符的文件 / 文件夹名称时,情况并非如此。.../#bc.txt or >rm '#bc.txt' 要删除文件名中带有哈希 # 的所有文件,您可以使用: # rm ./#* 处理名称中带有分号 ; 的文件如果您不知道,分号在 BASH 和其他...它告诉 BASH 这;是文件名的一部分,而不是命令分隔符。 对名称中带有分号的文件和文件夹的其余操作(即复制、移动、删除)可以通过将名称括在单引号中来直接执行。...只需按照正常方式进行,就像简单的文件名一样。 >touch :12.txt or >touch :12:.txt 文件名中包含引号(单引号和双引号)要在文件名中包含引号,我们必须使用交换规则。...即,如果您需要在文件名中使用单引号,请将文件名用双引号括起来,如果您需要在文件名中使用双引号,则用单引号将其括起来。

7.5K20
  • Linux系统Bash的常用功能

    shell 依据发展者的不同就有许多的版本,例如常听到的 Bourne SHell (sh) 、在 Sun 里头默认的 C SHell、 商业上常用的 K SHell、还有 TCSH 等,每一种 Shell...特殊通配符◆符 号作 用''单引号:在单引号中的内容,全部会脱意,它是脱意字符.""...双引号:双引号内,拥有$调用变量,引用命令,和转义符的特殊含义....中执行[]大括号:用于测试变量#警号:在shell脚本中,警号表示注释$$符号:用于调用变量值\转义符:用于转义\之后的内容不被执行单引号与双引号: 单引号当中的特殊字符被脱意了,而双引号也是脱意,但是..."$name"lyshark[root@localhost ~]# echo "{{{ lyshark"{{{ lyshark单引号与反引号: 单引号和双引号会脱意,在双引号中的反引号会执行[root@

    3.3K30

    Shell脚本编程30分钟入门

    4 Mar 22 10:22 /bin/sh -> bash 但在Mac OS上不是,/bin/sh和/bin/bash是两个不同的文件,尽管它们的大小只相差100字节左右: iMac:~...简单 vs 高级 如果你觉得自己熟悉的语言(如Java、C)写shell脚本实在太啰嗦,你只是想做一些备份文件、安装软件、下载数据之类的事情,学着使用sh,bash会是一个好主意。...字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了,哈哈),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。...单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的 单引号字串中不能出现单引号(对单引号使用转义符后也不行) 双引号.../function.sh 在bash里,source和.是等效的,他们都是读入function.sh的内容并执行其内容(类似PHP里的include),为了更好的可移植性,推荐使用第二种写法。

    1.5K20

    【Linux】《how linux work》第十一章 Shell 脚本简介

    双引号(")的作用与单引号相同,但 shell 会展开双引号内的任何变量。 运行下面的命令,然后用单引号替换双引号并再次运行,就能看出其中的区别。...For example: &&和||结构经常被用于if测试中,在两种情况下,最后一个运行的命令的退出代码决定了shell如何处理条件。...注意因为测试命令在脚本中被广泛使用,许多版本的Bourne shell(包括bash)将测试命令作为内置命令。 这可以加快脚本的运行,因为shell不必为每个测试运行一个单独的命令。...当你必须在大量文件上运行一条命令时,命令或 shell 可能会回应说,它的缓冲区无法容纳所有参数。 使用 xargs 可以解决这个问题,它可以在标准输入流中的每个文件名上运行一条命令。...然而,在某个特定的点上(尤其是当你开始使用read内置命令时),你必须问自己是否仍然在使用正确的工具来完成工作。 记住shell脚本最擅长的是处理简单的文件和命令。

    17710

    shell语法

    否则会报错 使用变量 使用变量需要加上¥(此符号在bash中意为取值),或者$(),花括号是可选的,主要是为了帮助解释器识别边界 echo $yxc echo $(yxc) echo会自动换行 错误:echo...(全局变量):子进程可以访问的变量 自定义变量转环境变量 export 变量名 declare -x 变量名 此时可以在子进程中使用变量 使用bash 使用bash会将原进程...,也可以使用双引号,也可以不使用引号 单引号和双引号的区别(不加引号和双引号相同) 单引号中的内容会原样输出,不会执行,不会取变量(即不会转义),即没有使用&符号取值 双引号中的内容可以执行,可以取变量...(不包括文件名) $*:由所有参数构成的用空格隔开的字符串,整体为字符串用双引号括起来 $@:每个参数分别用双引号括起来的字符串(@和*都是取所有的意思) $$:脚本当前运行的进程ID $?...expr中的(必须在expr中使用) 而||与&&双与和双或是bash中自带的,可以直接在bash中使用 也带有短路特性 表达式中的exit code为0表示真,非0表示假 可以根据短路特性来做if表达式

    12810

    基于xargs命令的多行命令并行管理

    ls *fastq | xargs -iF -P 10 sh -c 'gzip F' xargs 关于xargs的用法我曾在之前的推文有提过,不过没有深入太多。...[1],本文主要使用以下参数 「-c」, 从-c后的字符串中读取命令 「-x」, 打印出所执行的命令以及当前状态 特殊符号 「''」, 单引号,保持引号里的内容不变 「“”」, 双引号,解析引号里的命令和变量...一共有6个文件,每次运行3个试试 ls *.gz | xargs -iF -P 3 sh -c 'fastqc -o ./ F' 可以看到只运行了三个命令 我们使用htop查看xargs的进程情况,...小结 使用xargs的好处是可以将该命令写入到代码中,适用于流程搭建的情况(如snakemake);而之前的submit.sh只能在脚本外面使用,实际上还会产生多个PID。...在遇到特殊情况需要kill任务的情况,使用xargs就可以直接kill母命令的PID,而submit.sh只能一个个的kill或killall。

    1.3K30

    linux bash shell 特殊字符大全

    Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好,...例子:echo {a,b,c}-{\ d," e",' f'} {a..z} 在Bash version 3时添加了这种花括号扩展的扩展,可以使用{A..Z}表示A-Z的所有字符列表,这种方式的扩展Mitchell...其作用有点类似通道,但和管道在用法上又有些不同,管道是作为子进程的方式来运行的,这个命令会在/dev/fd/下面产生类似/dev/fd/63,/dev/fd/62这类临时文件,用来传递数据。...例子:echo {a,b,c}-{\ d," e",' f'} {a..z} 在Bash version 3时添加了这种花括号扩展的扩展,可以使用{A..Z}表示A-Z的所有字符列表,这种方式的扩展...其作用有点类似通道,但和管道在用法上又有些不同,管道是作为子进程的方式来运行的,这个命令会在/dev/fd/下面产生类似/dev/fd/63,/dev/fd/62这类临时文件,用来传递数据。

    6.6K30

    日拱一卒,麻省理工教你CS基础,那些酷炫无比的命令行工具

    在这门课上,我们将会演示一些shell工具以及bash脚本语言的基础用法。这些内容基本上能够覆盖大多数命令行的使用场景。...Shell Scripting 目前我们已经演示了如何在shell里运行程序,以及使用管道命令。 然而,在许多场景当中,我们希望能够运行一系列命令并且使用一些控制流命令,比如条件语句、循环等等。...因为shell脚本是按照空格分隔参数的。这个特性在刚开始使用的时候会觉得很别扭,所以记得经常检查。 string可以使用单引号或双引号来表示,但它们不是等价的。...以单引号分隔的字符串是纯字符,当中的变量不会被取值。而双引号的字符串可以。 和大多数编程语言一样,bash也支持控制流语法,比如if, case, while和for。...$_- 上一条命令的最后一个参数,如果你是在交互式的shell终端使用,你也可以使用快捷键Esc加上.或者是Alt+.。

    1.6K40

    linux学习-bash shell 编程

    $n 参数 $# :代表后接的参数『个数』,以上面为例这里显示为『 4 』; $@ :代表『 "$1" "$2" "$3" "$4" 』之意,每个变量是独立的(用双引号括起来); $* :代表『 "$1c...注意:不能在"="两边留空格 取用一个变量的值,只需在变量名前面加一个$ 可以和其他文字混起来书写 num=2 echo "this is the ${num}nd" shell的默认赋值是字符串赋值...# 底下三行在配置文件名 file2=$filename${date2} file3=$filename${date3} # 4....如果不加引号,带空格的参数会被截断 Shell里的一些特殊符号 1.* :通配符,可以使用双引号和单引号防止扩展....单引号更严格一些,它可以防止任何变量扩展;而双引号可以防止通配符扩展但允许变量扩展: #!

    3.8K50

    Shell 的18条常用命令整理

    ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。 ls –l 该参数显示更详细的文件信息。...ls –F 使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。...10、echo命令 echo命令的使用频率不少于ls和cat,尤其是在shell脚本编写中。...使用的bash下,单引号’’和双引号是有区别的,单引号忽略所有的转义,双引号不会忽略以下特殊字符: Dollar signs ($),Back quotes (`),Backslashes (/),Excalmatory...| xargs rm 17、basename 和 dirname basename用于查看文件不含路径的名字,dirname则用于查看文件路径,使用效果我们测试一下便知: > basename /home

    56610

    Shell的18条常用命令整理

    ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。 ls –l 该参数显示更详细的文件信息。...ls –F 使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。...10、echo命令 echo命令的使用频率不少于ls和cat,尤其是在shell脚本编写中。...使用的bash下,单引号’’和双引号是有区别的,单引号忽略所有的转义,双引号不会忽略以下特殊字符: Dollar signs ($),Back quotes (`),Backslashes (/),Excalmatory...| xargs rm 17、basename 和 dirname basename用于查看文件不含路径的名字,dirname则用于查看文件路径,使用效果我们测试一下便知: > basename /home

    1.2K40

    Shell的18条常用命令整理

    ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。 ls –l 该参数显示更详细的文件信息。...ls –F 使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。...10、echo命令 echo命令的使用频率不少于ls和cat,尤其是在shell脚本编写中。...使用的bash下,单引号’’和双引号是有区别的,单引号忽略所有的转义,双引号不会忽略以下特殊字符: Dollar signs ($),Back quotes (`),Backslashes (/),Excalmatory...| xargs rm 17、basename 和 dirname basename用于查看文件不含路径的名字,dirname则用于查看文件路径,使用效果我们测试一下便知: > basename /home

    63200

    简单&基础shell操作_转发分享

    关于注释的问题: 在shell中使用#进行注释,注意,sh里面没有多行注释,只能每一行加一个#号; 第一个shell脚本程序: #!/bin/bash # 上面中的 #!...shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行 特殊变量: image $* 和 $@ 的区别为: $* 和 $@ 都表示传递给函数或脚本的所有参数...image Shell中的字符串 单引号的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。...: 例如:当一个路径为 /home/xiaoming/1.txt时,如何怎么它的路径(不带文件) 和如何得到它的文件名??...until 循环与 while 循环在处理方式上刚好相反。

    1.1K10

    shell 学习笔记(17)

    ,while 读了一个值之后,ssh会读取剩下的数据, 可以 echo ""|ssh 或者 ssh -n 也可以避免 1606.find|xargs 文件名包含了单引号: xargs: unmatched...disown -h 和nohup一样,在退出bash后,把进程的控制权都交给init 我们可以根据不同的场景来选择不同的方案。...如果并没有把当前命令作为作业来运行,如何才能得到它的作业号呢? 答案就是用 CTRL-z(按住Ctrl键的同时按住z键)了!...1633.screen设置后台任务的方法: 如果有大量这种命令需要在稳定的后台里运行,如何避免对每条命令都做这样的操作呢? 此时最方便的方法就是 screen 了。...简单的说,screen 提供了 ANSI/VT100 的终端模拟器, 使它能够在一个真实终端下运行多个全屏的伪终端。

    1.1K80

    Unix & Linux 大学教程 学习总结

    因此可以将程序的结构描述为,在一个进程之内,不止一个线程在同时进行。.../Right 工作区的切换(基于gnome桌面) 9,终端 stty -a 获取当前终端行设置 intr = ^C(停止正在运行程序); quit = ^\(停止程序并保存core文件); erase...) set -/+o 显示shell选项控制(bash) 17,引用和转义 使用反斜线引用单个字符(称为转义了这个字符) 使用单引号引用一串字符 使用双引号引用一串字符,但是保留$,`,\的特殊意义...-ok command{} \;同上,但是运行命令之前确认 -delete    删除文件 -fls file xargs处理查找到的文件 find ~ -type f | xargs ls -s (...whoami;date) |xargs 39, 进程和作业控制 echo $$ 显示当前shell的PID echo $!

    2.3K10

    Linux

    /bin/bash,指明bash为脚本解释器。 ---- 学习技巧 不要死记硬背,遇到含糊不清的地方,可以在AC Terminal里实际运行一遍。...单引号与双引号的区别: 单引号中的内容会原样输出,不会执行、不会取变量; 双引号中的内容可以执行、可以取变量; name=yxc # 不用引号 echo 'hello, $name \"hh\"'...,如果使用单引号,则不转义 echo \"Hello AC Terminal\" # 也可以省略双引号 ---- 显示变量 name=yxc echo "My name is $name" # 输出...否则可以直接关闭进程: 使用top命令找到进程的PID 输入kill -9 PID即可关掉此进程 函数 bash中的函数类似于C/C++中的函数,但return的返回值与C/C++不同,返回的是exit...内容存放在~/.bash_history中 ---- 工具 md5sum:计算md5哈希值 可以从stdin读入内容 也可以在命令行参数中传入文件名列表; time command:统计command命令的执行时间

    2.6K20

    shell 学习笔记(16)

    1504.Read-only file system:文件系统只读 如果/data在/分区上:mount -o remount /data,其实/分区也可以remount的,只是不能umount...除非你用""去掉单引号的作用,就像shell下一样 awk: ^ invalid char ''' in expression 1534.巧用 RS、RT 匹配双引号段...rsync daemon 的话在 daemon 上控制权限,要开 daemon,ssh 的话 ssh 控制权限,要开ssh 1585.回车与换行符的终端输出: ^J \n 0A 换行符...tar.gz 1589.vim 列模式: 将光标放在需要选择列的第一个字符上,在一般模式中,按下“Ctrl+v”, 然后使用“↓”或“↑”进行块字符的选择,选中的地方会反白显示...bash 3.00.15确实是这样的,后来的bash改掉了,不用加 0 了。 其实 python -c 'print "\270\264\274\376"' 也行。

    1.5K100

    linux shell编程学习笔记(3)

    3、如何使用变量 ——#$变量名 4、如何输出变量 ——#echo $变量名 5、如何删除变量 ——#unset 变量名 6、如何查看已经定义的变量 1)env 查看系统环境变量,环境变量一般都是大写...2)set 查看所有变量,包括系统环境变量和自定义变量 3)set | grep 变量名  //查看某个变量 7、变量的生命周期和范围(作用域) 7.1局部变量 (1)在脚本里定义的变量只有在脚本里生效...(2)默认定义的变量只在当前的shell里可以使用,无法在子shell使用。...当位置大于9时,需要加上大括号{}; 如:${11}, 11是当成一个整体,$11是$1+1 10.4自定义变量: ——由用户自己设置、修改和使用的变量 11、与变量相关的符号 11.1单引号: ——'...'   调用变量使用单引号,变量被当做普通字符处理 11.2双引号: ——""   调用变量使用双引号,变量被当做普通字符处理 单引号和双引号的区别:用双引号时不会取消掉里面出现的特殊字符的本身作用(这里的

    72220

    Linux私房菜:走进bash

    用户bash指令使用记录文件:~/.bash_history 命令与文件补全:tab 命令别名设定:alias 工作控制、前景和背景控制 程序化脚本:shell scripts 通配符:wildcard...在终端输入,如设定a=b(不能以数字开头,等号两边不能有空格),那么可以使用echo指令取出值b:echo $a,这种设定仅对本次登录有效; 常见的环境变量有$HOME、$PATH等,可用env、set...(正常回传为0) 取消变量设定:unset a; 双引号字符串中,仍可引用变量,而单引号字符串仅代表是字符串本身。...逻辑运算符:非,not >, >> 数据流输出重导向,前者是覆盖追加,后者是累记追加 <, << 数据流输入重导向 'xxx' 单引号确保了当前引用的肯定为字符串 "xxx" 双引号仍具有变量置换功能(...分区命令 split -[bl] file [PREFIX],-b参数后接分区文件大小,可指定b,k,m,g等;-l参数为以行数进行分区;PREFIX指定分区文件名前缀 参数替换 xargs -[

    2.5K20
    领券