xargs命令

xargs
删除  复制  查看    移动    

查看

xargs 会把前面取到的值放到最后面 
[root@test3 ~]# find /root/ -maxdepth 1 -name 111
/root/111
[root@test3 ~]# find /root/ -maxdepth 1 -name 111|xargs ls -l
此时这条命令就变成了 ls -l /root/111

写完全一点就是
find /root/ -maxdepth 1 -name 111|xargs ls -l '/root/111'




[root@test3 ~]# find /root/ -maxdepth 1 -name 111|xargs ls -l
------x--x 1 root root 66 Jun 22 09:31 /root/111
[root@test3 ~]# 


此时不支持 ll命令,只支持ls -l

删除

[root@test3 ~]# find /root/ -maxdepth 1 -name 111|xargs rm -rf

拷贝

我若是想把文件拷贝到/opt下
就不能这样中规中矩的写了
因为这样写就会变成  find /root/ -maxdepth 1 -name 111|xargs cp /opt/  111
把 /opt 拷贝到111里了,因为xargs会默认把取到的文件放到最后

[root@test3 ~]# find /root/ -maxdepth 1 -name 111|xargs cp /opt/
cp: omitting directory ‘/opt/’

-t 取反  代表把1.txt拷贝到/opt下,但一般不用,一般选择支持xargs的语法
cp -t /opt   1.txt
[root@test3 ~]# ls /opt/
[root@test3 ~]# find /root/ -maxdepth 1 -name 111|xargs cp -t /opt/
[root@test3 ~]# ls /opt/
111

xargs语法
[root@test3 ~]# rm -rf /opt/111 
[root@test3 ~]# find /root/ -maxdepth 1 -name 111|xargs -i cp  {} /opt/
[root@test3 ~]# ls /opt/
111

xargs -i cp  {} /opt/  
-i   表示插入 insert,把前面找到文件指定插入到 {}里面
{}  就代表前面取的值 拷贝到/opt下

查看过后拷贝过去的文件,你想改名
[root@test3 ~]# find /root/ -maxdepth 1 -name 111|xargs -i cp  {} /opt/1.txt.bak
[root@test3 ~]# ls /opt/
111  1.txt.bak


移动

find /root/ -maxdepth 1 -name 111|xargs -i mv  {}  /tmp/

第二种方法

使用exec

查看

[root@test3 ~]# find /root/ -maxdepth 1 -name 111 -exec ls -l {} \;
-rw-r--r-- 1 root root 0 Jul 12 14:31 /root/111

[root@test3 ~]# find /root/ -maxdepth 1 -name '*.txt' -exec ls -l {} \;
-rw-r--r-- 1 root root 1073741824 Jul 11 23:22 /root/3.txt
-rw-r--r-- 1 root root 374 Jul 10 21:28 /root/1.txt
-rw-r--r-- 1 root root 4 Jul  6 11:12 /root/test.txt
-rw-r--r-- 1 root root 0 Jul  6 10:52 /root/2.txt


\;    \表示转移,把后面的分号 就只当作普通的 ; 

删除

[root@test3 ~]# find /root/ -maxdepth 1 -name '*.txt' -exec rm -rf {} \;

复制

[root@test3 ~]# find /root/ -maxdepth 1 -name '*.txt' -exec cp {} /opt/  \;
[root@test3 ~]# ls /opt/
1.txt

移动

[root@test3 ~]# find /root/ -maxdepth 1 -name '*.txt' -exec mv {} /tmp/  \;

第三种方法

` ` 反引号 $() 先执行反引号和$()里面的命令 相当于 (加)减乘除 ,先算括号里面的
[root@test3 ~]# ll `find /root/ -maxdepth 1 -name '*.txt'`
-rw-r--r-- 1 root root 0 Jul 12 15:08 /root/1.txt
[root@test3 ~]# ll $(find /root/ -maxdepth 1 -name '*.txt')
-rw-r--r-- 1 root root 0 Jul 12 15:08 /root/1.txt

相关推荐

  1. xargs命令

    2024-07-13 04:18:03       24 阅读
  2. Linux Shell:`xargs`命令

    2024-07-13 04:18:03       35 阅读
  3. Liunx运维批处理命令xargs

    2024-07-13 04:18:03       43 阅读
  4. Xargs命令详解: 构建和执行命令的必备工具

    2024-07-13 04:18:03       46 阅读
  5. exec 和 xargs 命令的用法区别,优缺点

    2024-07-13 04:18:03       43 阅读
  6. 03-28 周四 Linux 并行工具使用xargs和parallel

    2024-07-13 04:18:03       38 阅读
  7. wc文件统计功能 && xargs && network 静态IP

    2024-07-13 04:18:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 04:18:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 04:18:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 04:18:03       57 阅读
  4. Python语言-面向对象

    2024-07-13 04:18:03       68 阅读

热门阅读

  1. TCP和UDP的区别

    2024-07-13 04:18:03       20 阅读
  2. 【python】IPython的使用技巧

    2024-07-13 04:18:03       24 阅读
  3. C++中struct与class区别,C与C++中struct区别

    2024-07-13 04:18:03       31 阅读