精华内容
下载资源
问答
  • Linux:删除一个目录下的所有文件,但保留一个指定文件 ...假设这个目录是/xx/,里面有file1,file2,file3..file10十个文件 [root@oldboyxx]#touchfile{1..10} [root@oldboyxx]#ls file1file10file2f...

    Linux:删除一个目录下的所有文件,但保留一个指定文件

    面试题:删除一个目录下的所有文件,但保留一个指定文件

    解答:

    假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件

    [root@oldboy xx]# touch file{1..10}

    [root@oldboy xx]# ls

    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

    方法一:find

    [root@oldboy xx]# ls

    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

    [root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f 

    [root@oldboy xx]# ls

    file10

    [root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;     

    [root@oldboy xx]# ls

    file10

    这两种一个通过xargs传参,一个通过find的-exec执行命令参数来完成,都算作find

    #感谢两位热心师兄还有老男孩老师的热心解答 C组副组长--张耀 北京-吴晓宇

    老男孩老师点评:此法最佳!必会方法!

    方法二:rsync

    [root@oldboy xx]# ls

    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

    [root@oldboy xx]# rsync -az --delete --exclude "file10" /null/ /xx/

    [root@oldboy xx]# ls

    file10

    老男孩老师点评:此法为锦上添花,加分项!

    方法三:开启bash的extglob功能(此功能的作用就是用rm !(*jpg)这样的方式来删除不包括号内文件的文件)

    [root@oldboy xx]# shopt -s extglob

    [root@oldboy xx]# ls

    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

    [root@oldboy xx]# rm -f !(file10)

    [root@oldboy xx]# ls

    file10

    第三种方法同样感谢热心的师兄 北京-张重生Net

    老男孩老师点评:此法没啥用,讲出来反而会让人觉得你水平不行,一看就是搜索出来的,但是作为知识研习是可以的!此法面试答出来有可能是减分项!

     

    再补充两种方法(20150802 来自老男孩教育25期课堂)

    方法四:

    find ./ -type f|grep -v "\boldboy1\b"|xargs rm -f

     

    方法五:

    rm -f `ls|grep -v "\boldboy1\b"`

     

    从运维角度,任何删除性的操作都应该事先备份后在执行或者确认有备份存在。

    转载于:https://www.cnblogs.com/fuyuteng/p/11447288.html

    展开全文
  • # 删除目录下那两个文件之外的所有文件 find dir/ -type f ! -name file1 -a ! -name file2 | xargs rm -f   # 删除所有空目录(非空目录不会被删除,但是会出错误信息,可以忽略) find dir/...

    # 删除目录下那两个文件之外的所有文件

    find dir/ -type f ! -name file1 -a ! -name file2 | xargs rm -f
     
    # 删除所有空目录(非空目录不会被删除,但是会出错误信息,可以忽略)
    find dir/ -type d | xargs rmdir -p
     

    使用bash shell删除目录中的特定文件的3种方法_linux shell_脚本之家
    http://www.jb51.net/article/51575.htm

     

    假设当前目录下有 a,b,c 三个目录,里面都有一个 s.txt 文件。
    [caz28]~/temp$find .  -type f -name s.txt -print
    ./b/s.txt
    ./c/s.txt
    ./a/s.txt
    要忽略 a 目录:
    [caz28]~/temp$find . -path ./a -prune -o -type f -name s.txt -print
    ./b/s.txt
    ./c/s.txt

    ./a 不能写成 ./a/, 否则没有作用。-o 是 -or 的意思,也必须加。
    要忽略 a,b 两个目录:
    [caz28]~/temp$find . path./aopath./b -prune -o -type f -name s.txt -print
    ./c/s.txt

    ( 和 ) 前要加 \ , 而且两个转义字符前后都要有空格。

    路径名和文件名,如果有空格,必须用双引号括起来。

    最后一个命令,应该显示如下:

    正常显示图片

    但CSDN显示效果如下:

    csdn显示错误的图片

    把括号显示没了,应该是CSDN blog系统的bug。


    还有一种方式如下:

    [caz28]~/temp$find . -type f -name s.txt ! -path ./a/* ! -path ./b/*
    ./c/s.txt

    注意空格,还有path里是有星号的。这个效率应该不如上面。

    转自

    find 命令查找文件时忽略某些目录 - CSDN博客 http://blog.csdn.net/caz28/article/details/50985844

    展开全文
  • 原文链接:... 问题:删除一个目录下的所有文件,但保留一个指定文件 基础环境: 假设这个目录是/xx/,里面有file1,file2,file3..file10十个文件 [root@oldboyxx]#touchfile{1..10} [root@oldbo...

    原文链接:http://oldboy.blog.51cto.com/2561410/1650380


    问题:删除一个目录下的所有文件,但保留一个指定文件


    基础环境:

    假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件

    [root@oldboy xx]# touch file{1..10}

    [root@oldboy xx]# ls

    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9


    1、方法一:find

    [root@oldboy xx]# ls

    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

    1)通过xargs:

    [root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f 

    [root@oldboy xx]# ls

    file10


    2)通过find自带命令: 

    [root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;     

    [root@oldboy xx]# ls

    file10

    这两种一个通过xargs传参,一个通过find的-exec执行命令参数来完成,都算作find吧

    此法最佳!必会方法!


    2、方法二:rsync

    [root@oldboy xx]# ls

    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

    [root@oldboy xx]# rsync -az --delete --exclude "file10" /null/ /xx/

    [root@oldboy xx]# ls

    file10


    3、方法三:

    find ./ -type f|grep -v "\boldboy1\b"|xargs rm -f


    4、方法四:

    rm -f `ls|grep -v "\boldboy1\b"`



    注意:从运维角度,任何删除性的操作都应该事先备份后在执行或者确认有备份存在。


          本文转自1清风揽月1  51CTO博客,原文链接:http://blog.51cto.com/watchmen/1921734,如需转载请自行联系原作者







    展开全文
  • 面试题:删除一个目录下的所有文件...假设这个目录是/xx/,里面有file1,file2,file3..file10 十个文件 [root@oldboy xx]# touch file{1..10} [root@oldboy xx]# ls file1 file10 file2 file3 file4 file5 file6 f...
    面试题:删除一个目录下的所有文件,但保留一个指定文件
    
    解答:
    假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件
    [root@oldboy xx]# touch file{1..10}
    [root@oldboy xx]# ls
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    
    方法一:find
    [root@oldboy xx]# ls
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    [root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f 
    [root@oldboy xx]# ls
    file10
    
    [root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;     
    [root@oldboy xx]# ls
    file10
    
    这两种一个通过xargs传参,一个通过find的-exec执行命令参数来完成,都算作find吧
    #感谢两位热心师兄还有老男孩老师的热心解答 C组副组长--张耀 北京-吴晓宇
    
    老男孩老师点评:此法最佳!必会方法!
    
    
    
    方法二:rsync
    [root@oldboy xx]# ls
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    [root@oldboy xx]# rsync -az --delete --exclude "file10" /null/ /xx/
    [root@oldboy xx]# ls
    file10
    
    老男孩老师点评:此法为锦上添花,加分项!
    
    
    方法三:开启bash的extglob功能(此功能的作用就是用rm !(*jpg)这样的方式来删除不包括号内文件的文件)
    [root@oldboy xx]# shopt -s extglob
    [root@oldboy xx]# ls
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    [root@oldboy xx]# rm -f !(file10)
    [root@oldboy xx]# ls
    file10
    第三种方法同样感谢热心的师兄 北京-张重生Net
    老男孩老师点评:此法没啥用,讲出来反而会让人觉得你水平不行,一看就是搜索出来的,但是作为知识研习是可以的!此法面试答出来有可能是减分项!
    
    再补充两种方法
    方法四:
    find ./ -type f|grep -v "\boldboy1\b"|xargs rm -f
    
    方法五:
    rm -f `ls|grep -v "\boldboy1\b"`
    
    从运维角度,任何删除性的操作都应该事先备份后在执行或者确认有备份存在。
    (来源老男孩教育)

     

    转载于:https://www.cnblogs.com/healy/p/9783280.html

    展开全文
  • 日志一天一个文件,针对名字进行匹配删除文件 匹配文件,并保留最后一份文件 declare -i total=ls access_log.* | wc -l declare -i nums=$total-1 declare -i total2=ls 2019*.log | wc -l declare -i nums2=$to...
  • 问题:删除一目录下的所有文件,但保留指定文件 方法一:find [root@oldboy xx]# ls file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 [root@oldboy xx]# find /xx...
  • 1. 取出两个文件的并集(重复的行只保留一份) cat file1 file2 | sort | uniq 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) cat file1 file2 | sort | uniq -d 3. 删除交集,留下其他的行 cat ...
  • 解答:假设这个目录是/test/,里面有file1,file2,file3..file10 十个文件[root@Kenny test]# touch file{1..10}[root@Kenny test]# lsfile1 file10 file2 file3 file4 file5 file6 file7 file8 f...
  • 方法一:find ...file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 [root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f  [root@oldboy xx]# ls
  • 假设这个目录是/xx/,里面有file1,file2,file3..file10 十个文件 [root@oldboy xx]# touch file{1..10} [root@oldboy xx]# ls file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 方法一...
  • linux下多个文件相同行合并

    千次阅读 2017-11-08 10:53:47
    通常我们遇到两个文件合并直接使用cat file1 file2 > file3,但是这种是将一个文件追加到另一个文件的末尾,相当于sql中的union,将多个查询记录合并到一起。今天要介绍的是将两个相同行的文件合并到一起,...
  • linux shell 删除重复文件保留一份

    千次阅读 2014-03-27 02:53:13
    #用途:查找并删除重复文件,每个文件保留一个样本 #将文件依据大小排序并输出 ls -lS | awk 'BEGIN {  #得到第一行total总数并丢弃,读取下一行  getline;getline;  name1=$9;size=$5; } {  name2=...
  • 本文系转载,出处:https://www.cnblogs.com/imzye/p/5109992.html #!/bin/bash direc=$(pwd) for dir2del in $direc/* ; do if [ -d $dir2del ]; then rm -rf $dir2del fi done
  • 1. 取出两个文件的并集(重复的行只保留一份) cat file1 file2 | sort | uniq 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) cat file1 file2 | sort | uniq -d 3. 删除交集,留下其他的行 cat file...
  • 展开全部第一:两个文件的交集,并...取出两个文件的并集(重复的行只保留一份)2.取出两个文件的交集(只留下同时存在于两个文件中的文件)3.删除交集,留下其他的行1.catfile1file2|sort|uniq>file...
  • 取出两个文件的并集(重复的行只保留一份)2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)3. 删除交集,留下其他的行1.cat file1 file2 | sort | uniq > file32. cat file1 file2 | sort | uniq -d >...
  • linux个文件交集,合并,去重

    千次阅读 2018-09-05 16:25:54
    1.两个文件的交集,并集 cat file1 file2 | sort | uniq > result cat file1 file2 | sort | ...第一条命名求两个文件的并集,如果有重复的行只保留一行。 第二条命令求两个文件的交集,即两个文件中都有...
  • 【版权申明】未经博主同意,谢绝转载!...LinuxShell-挂载一个文件系统   1.mount   2.umount 在介绍怎么挂载一个文件系统前, 有必要和各位看官介绍一下, 什么是文件系统?   用我的话来说, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 729
精华内容 291
关键字:

linux保留2个文件

linux 订阅