精华内容
下载资源
问答
  • find . -name CVS -type d -exec rm -rf {} \;

    以下技术应用于最优质的水果的鲜果篮

    find . -name CVS -type d -exec rm -rf {} \;
    展开全文
  • 【mysql】mysql删除重复记录并且只保留一条

    万次阅读 多人点赞 2018-09-03 21:10:13
    目录 、单个字段的操作 分组介绍: 1. 查询全部重复的数据: 2. 删除全部重复试题: ...4. 删除多余重复试题并且只留1: a. 第种方法: b. ☆第二种方法(与上面查询的第二种方法对应,只...

    目录

    一、单个字段的操作

    分组介绍:

    1. 查询全部重复的数据:

    2. 删除全部重复试题:

    3. 查询表中多余重复试题(根据depno来判断,除了rowid最小的一个)

    a. 第一种方法:

    b. 第二种方法:

    c. 补充第三种方法(根据评论区给的删除总结出来的):

    4. 删除表中多余重复试题并且只留1条:

    a. 第一种方法:

    b. ☆第二种方法(与上面查询的第二种方法对应,只是将select改为delete):

    c. 补充第三种方法(评论区推荐的一种方法):

    二、多个字段的操作:

    总结:


    最近在做题库系统,由于在题库中添加了重复的试题,所以需要查询出重复的试题,并且删除掉重复的试题只保留其中1条,以保证考试的时候抽不到重复的题。

    首先写了一个小的例子:

    一、单个字段的操作

    这是数据库中的表:

    分组介绍:

    Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1

    查看是否有重复的数据:

    GROUP BY <列名序列>

    HAVING <组条件表达式>

    查询出:根据dname分组,同时满足having字句中组条件表达式(重复次数大于1)的那些组

    count(*)与count(1) 其实没有什么差别,用哪个都可以

    count(*)与count(列名)的区别:

        count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入)

    1. 查询全部重复的数据:

    Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
    

    2. 删除全部重复试题:

    将上面的查询select改为delete(这样会出错的)

    DELETE
    FROM
    	dept
    WHERE
    	dname IN (
    		SELECT
    			dname
    		FROM
    			dept
    		GROUP BY
    			dname
    		HAVING
    			count(1) > 1
    	)

    会出现如下错误:[Err] 1093 - You can't specify target table 'dept' for update in FROM clause

    原因是:更新这个表的同时又查询了这个表,查询这个表的同时又去更新了这个表,可以理解为死锁。mysql不支持这种更新查询同一张表的操作

    解决办法:把要更新的几列数据查询出来做为一个第三方表,然后筛选更新。

     

    3. 查询表中多余重复试题(根据depno来判断,除了rowid最小的一个)

    a. 第一种方法:

    SELECT
    	*
    FROM
    	dept
    WHERE
    	dname IN (
    		SELECT
    			dname
    		FROM
    			dept
    		GROUP BY
    			dname
    		HAVING
    			COUNT(1) > 1
    	)
    AND deptno NOT IN (
    	SELECT
    		MIN(deptno)
    	FROM
    		dept
    	GROUP BY
    		dname
    	HAVING
    		COUNT(1) > 1
    )

    上面这种写法正确,但是查询的速度太慢,可以试一下下面这种方法:

    b. 第二种方法:

    根据dname分组,查找出deptno最小的。然后再查找deptno不包含刚才查出来的。这样就查询出了所有的重复数据(除了deptno最小的那行)

    SELECT *
    FROM
    	dept
    WHERE
    	deptno NOT IN (
    		SELECT
    			dt.minno
    		FROM
    			(
    				SELECT
    					MIN(deptno) AS minno
    				FROM
    					dept
    				GROUP BY
    					dname
    			) dt
    	)

    c. 补充第三种方法(根据评论区给的删除总结出来的):

    SELECT
    	* 
    FROM
    	table_name AS ta 
    WHERE
    	ta.唯一键 <> ( SELECT max( tb.唯一键 ) FROM table_name AS tb WHERE ta.判断重复的列 = tb.判断重复的列 );

     

    4. 删除表中多余重复试题并且只留1条:

    a. 第一种方法:

    DELETE
    FROM
    	dept
    WHERE
    	dname IN (
    		SELECT
    			t.dname
    		FROM
    			(
    				SELECT
    					dname
    				FROM
    					dept
    				GROUP BY
    					dname
    				HAVING
    					count(1) > 1
    			) t
    	)
    AND deptno NOT IN (
    SELECT
    	dt.mindeptno
    FROM
    	(
    		SELECT
    			min(deptno) AS mindeptno
    		FROM
    			dept
    		GROUP BY
    			dname
    		HAVING
    			count(1) > 1
    	) dt
    )

    b. ☆第二种方法(与上面查询的第二种方法对应,只是将select改为delete):

    DELETE
    FROM
    	dept
    WHERE
    	deptno NOT IN (
    		SELECT
    			dt.minno
    		FROM
    			(
    				SELECT
    					MIN(deptno) AS minno
    				FROM
    					dept
    				GROUP BY
    					dname
    			) dt
    	)

    c. 补充第三种方法(评论区推荐的一种方法):

    DELETE 
    FROM
    	table_name AS ta 
    WHERE
    	ta.唯一键 <> (
    SELECT
    	t.maxid 
    FROM
    	( SELECT max( tb.唯一键 ) AS maxid FROM table_name AS tb WHERE ta.判断重复的列 = tb.判断重复的列 ) t 
    	);

    二、多个字段的操作:

    单个字段的如果会了,多个字段也非常简单。就是将group by 的字段增加为你想要的即可。

    此处只写一个,其他方法请仿照一个字段的写即可。

    DELETE
    FROM
    	dept
    WHERE
    	(dname, db_source) IN (
    		SELECT
    			t.dname,
    			t.db_source
    		FROM
    			(
    				SELECT
    					dname,
    					db_source
    				FROM
    					dept
    				GROUP BY
    					dname,
    					db_source
    				HAVING
    					count(1) > 1
    			) t
    	)
    AND deptno NOT IN (
    	SELECT
    		dt.mindeptno
    	FROM
    		(
    			SELECT
    				min(deptno) AS mindeptno
    			FROM
    				dept
    			GROUP BY
    				dname,
    				db_source
    			HAVING
    				count(1) > 1
    		) dt
    )

    总结:

    其实上面的方法还有很多需要优化的地方,如果数据量太大的话,执行起来很慢,可以考虑加优化一下:

    • 在经常查询的字段上加上索引
    • 将*改为你需要查询出来的字段,不要全部查询出来
    • 小表驱动大表用IN,大表驱动小表用EXISTS。IN适合的情况是外表数据量小的情况,而不是外表数据大的情况,因为IN会遍历外表的全部数据,假设a表100条,b表10000条那么遍历次数就是100*10000次,而exists则是执行100次去判断a表中的数据是否在b表中存在,它只执行了a.length次数。至于哪一个效率高是要看情况的,因为in是在内存中比较的,而exists则是进行数据库查询操作的

     

                                                                                                本人小菜一枚,有什么写的不妥的地方,欢迎大家指教!

                                                                                                我会不定期的看评论,也会根据大家的指点来修改博客不妥的地方!

                                                                                                各位读者有什么好的方法,或者想法欢迎评论区留言。。。

    展开全文
  • linux删除目录命令If you want to remove several subdirectories within another directory using the command line in Linux, generally you have to use the rm command several times. However, there is a ...
    linux删除目录命令

    linux删除目录命令

    00_lead_image_removing_multiple_subdirectories

    If you want to remove several subdirectories within another directory using the command line in Linux, generally you have to use the rm command several times. However, there is a faster way to do this.

    如果要在Linux中使用命令行删除另一个目录中的多个子目录,通常必须多次使用rm命令。 但是,有一种更快的方法可以做到这一点。

    Let’s say we have a directory called htg with five subdirectories within it and we want to delete three of them. In a normal situation, we’d use the rm command three times.

    假设我们有一个名为htg的目录,其中包含五个子目录,我们想删除其中的三个。 在正常情况下,我们将使用rm命令3次。

    02_removing_subdirectories_separately

    However, we can make this process even shorter by combining the three rm commands into one. Here’s how.

    但是,通过将三个rm命令组合为一个,我们可以使此过程变得更短。 这是如何做。

    To remove the three subdirectories you only need to type the following command at the prompt and press Enter (obviously, change the directory names to what you want to remove).

    要删除这三个子目录,只需在提示符下键入以下命令,然后按Enter键(显然,将目录名更改为要删除的目录名)。

    rm -r ~/Documents/htg/{done,ideas,notes}
    

    The words in the brackets are part of the “brace expansion list”. Each of the items in the brace expansion list is appended separately to the preceding path (~/Documents/htg/). For example, the above command is expanded into ~/Documents/htg/done, ~/Documents/htg/ideas, and ~/Documents/htg/notes, the three subdirectories under the htg directory that we want to remove. As you can see in the screenshot below, those three subdirectories were removed.

    方括号中的词是“括号扩展列表”的一部分。 大括号扩展列表中的每个项目都分别附加到前面的路径(〜/ Documents / htg /)。 例如,以上命令被扩展为〜/ Documents / htg / done,〜/ Documents / htg / ideas和〜/ Documents / htg / notes,这是我们要删除的htg目录下的三个子目录。 如下面的屏幕快照所示,这三个子目录已被删除。

    03_removing_three_subdirectries_at_once

    The -r flag is required when using the rm command to remove a directory rather than a file. If you leave the -r flag out of the above command, you will get an error saying that the directories cannot be removed.

    使用rm命令除去目录而不是文件时,需要-r标志。 如果将-r标志保留在上述命令之外,则会收到一条错误消息,指出无法删除目录。

    04_cannot_remove_subdirectory

    If all of the subdirectories you want to remove are empty, you can use the rmdir command, as shown below.

    如果要删除的所有子目录都为空,则可以使用rmdir命令,如下所示。

    rmdir ~/Documents/htg/{done,ideas,notes}
    

    If it turns out that any of the subdirectories are not empty, an error will display saying that the removal failed and the subdirectory in question and its subdirectories are not removed. However, any empty subdirectories are removed.

    如果事实证明子目录中的任何一个都不为空,则会显示一条错误消息,指出删除失败,并且该子目录及其子目录未删除。 但是,任何空的子目录都将被删除。

    05_using_rmdir_command

    Be very careful with the rm command. Using it the wrong way can delete all the files on your hard drive.

    rm命令要非常小心。 以错误的方式使用它可能会删除硬盘驱动器上的所有文件。

    You can also create a directory containing several subdirectories, or a directory tree, using one command.

    您还可以使用一个命令创建包含多个子目录的目录或目录树

    翻译自: https://www.howtogeek.com/276516/how-to-remove-multiple-subdirectories-with-one-linux-command/

    linux删除目录命令

    展开全文
  • linux巧用xargs删除另外目录中的同名文件假设有两个目录 /opt/test_a 和 /opt/test_b, /opt/test_b目录下不仅包含了/opt/test_a目录下的文件也包含其他文件,现在要删除/opt/test_b目录中与/opt/test_a目录...

    linux中巧用xargs删除另外一个目录中的同名文件

    假设有两个目录 /opt/test_a 和 /opt/test_b, /opt/test_b目录下不仅包含了/opt/test_a目录下的文件也包含其他文件,现在要删除/opt/test_b目录中与/opt/test_a目录中同名的文件,但是不删除同名的子目录,可以使用如下命令:

    cd /opt/test_a && ls -p | grep -v /$ | xargs -I{} rm -f /opt/test_b/{}  

    说明:

    . ls -p 参数将给列出的目录名最后加上/
    . grep -v 参数指定反选择, /$指定以/结尾的搜索模式,因此该命令将输出不带/结尾的项,也就是只输出/opt/test_a目录中的文件名,不包含子目录。
    . xargs命令的-I{} 指定用管道传递过来的输入替换后面命令中的{}字符串,重复多次,直至管道没有输入

    注:xargs加上 -t 参数,可以看到替换的效果

    这个技巧用在makefile中,制作make install 和make uninstall。 对应的make install 执行的命令为:

    cd /opt/test_a && ls -p | grep -v /$ | xargs -I{} install -m 755  {}  /opt/test_b/

     

    展开全文
  • 删除一个非空目录

    千次阅读 2015-12-04 18:54:37
     readdir用来从dirp指定的目录中,读取下目录项(struct dirent)并返回。  struct dirent {  ino_t d_ino; //I-node编号  off_t d_off; //偏移量,NOTE  unsigned short d_reclen; //这...
  • 删除.git目录中的大文件

    千次阅读 2019-01-04 15:05:52
    最近在使用jenkins对某个服务进行编译的时候发现,docker镜像文件非常大,使用du命令查看,发现.git目录中objects目录占用空间非常大,竟然达到100多MB。 直接进入编译目录删除这个大文件之后进行编译,这个文件居然...
  • 当你要删除一目录下及其子目录下的所有某类型的文件或文件夹时,使用一般的rm方法在配以正则是行不通的。。。 正确做法为: findfolderPath-option [-print] [-exec -ok command] {} \; e.g.: 删除当前...
  • Spark TaskAttempt目录删除问题排查

    千次阅读 2019-08-03 17:47:40
    文章目录一、问题描述二、问题分析三、总结 一、问题描述 有业务反馈spark任务结束后会遗留一些attempt目录在输出目录上,影响数据的读取。主要现象如下: 二、问题分析 之前排查过一个类似的问题,也是输出目录下...
  • 我想删除某个多层次的文件夹下面的文件,比如是*.zip,但这文件存在于很多目录当中,如何用一条命令搞定?   示例:一次性删除目录及其子目录下所有以.exe为后缀的文件。 find . -name '201702*.zip' -type f...
  • linux中删除文件和目录的命令 rm命令

    千次阅读 2018-01-10 20:55:58
    rm是常用的命令,该命令的功能为删除一目录中个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm是个危险的命令,使用的...
  • 项目,在“资源目录-在线编目”,资源项子表存在多条重发数据,需要进行数据清理,删除重发的数据,最终只保留一条相同的数据。   操作的表名:R_RESOURCE_DETAILS   操作步骤   重发记录根据单个字段来判断 ...
  • 现在,大家从网上下载的一些资源压缩包内,都会有资源提供者加入的一些自己网站的推广链接Internet快捷方式,有些资源提供者只在资源根目录及个别目录中放置,这种是比较人性化的,也是可以接受和理解的。...
  • 删除目录命令 常用方法:rmdir [options] directories 常用参数(options):  -p:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除 例如: 删除目录/test/test1后,若test已变成空目录,则将其...
  • linux终端删除文件命令Fatmawati Achmad Zaenuri/Shutterstock.comFatmawati Achmad Zaenuri / Shutterstock.com The rm and rmdir commands delete files and directories on Linux, macOS, and other Unix-like ...
  • 1、通过命令设置工作目录,查看工作目录下的文件 > setwd(dir = "D:/R/R_Workspace") #设置需要的工作路径,注意斜杠的方向和其他编程语言不同 > getwd() #查看当前工作目录 [1] "D:/R/R_Workspace" > ...
  • linux删除用户及其所在工作目录

    千次阅读 2017-04-12 09:49:44
    userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件命 令: userdel 功能说明:... 参 数: -f 删除用户登入目录以及目录中所有文件。 userdel很简单,只有个参数可选 -r ;如果
  • 困扰了好几个小时,要将字符串写入txt文档中,一条一条目录写入,不能覆盖上一条,如果覆盖了等于没有存储。最终查到,只需在outputStream = new FileOutputStream(file2,true)中加一个参数true即可,最终成功解决!...
  • 关注「实验楼」,每天分享个项目教程 为什么Linux允许用户删除目录?这个问题看上去也并不是个吸引人的话题,很多学习Linux的朋友可能也没意识到这个问题,对于Linux这个精细的系统,很多较危险的命令都做了...
  • 在Linux上恢复误删除的文件或目录

    千次阅读 2020-06-15 14:21:47
    删除Linux系统文件了?不用急,本文将给你一个...所以本次研究一种比较靠谱的文件和目录恢复方法,也给维护人员留一条后路。 分析对比debugfs. testdisk 6.14. extundelete,对比各自官网介绍和操作说明本次决定研
  • ::::::批处理文件bat要求编码格式为ANSI格式,个txt文件, ::通过电脑自带的“记事本”编辑bat代码,默认将是ANSI格式编码 @rem echo off @REM 命令“echo off”后面不能有空格 @REM (加@表示连echo off都不显示,...
  • 注意:若转载,请贴上链接“https://blog.csdn.net/qq_41042595/article/details/109594194”,如若发现抄袭或未标明来源现象,都可举报反馈!... 检查桌面删除目录是否成功结语 问题来源场景: 我很早之前就被这
  • 当我们在Linux系统卸载软件或清理数据时,经常会使用rm -rf命令去删除某个目录,例如删除/tmp/tektea目录: # rm -rf /tm/tektea rm命令的-r和-f这两个参数的man含义如下: -r, -R, --recursive remove ...
  • Git 强行拉取在本地已删除/编辑的文件或目录,用 git checkout 恢复单个已删除/编辑的文件或目录删除本地文件后,想从远程仓库重新 Pull 最新版文件,Git提示: git.exe pull -v --progress "origin" ... ... ...
  • 删除所有.svn/.git等残留目录方法

    千次阅读 2015-10-26 09:34:10
    删除所有.svn目录 这也是我当初查找 Linux find 命令的目的。 1) find . -type d -name ‘.svn’ | ...#(处理方式是逐个,并不是’删一条显示删了一条再继续删’这样的) 2) find . -type d -iname ‘.svn
  • 用yeoman的generator创建项目目录,后面想删除目录时windows提示路径太长无法删除,后面在知乎上发现有人回答同样的问题,zhihu 说的是用npm找可以删除这种目录的包,并给出了链接npm包 两命令解决这个问题: ...
  • 问题的背景: 写自动化测试用例,客户端与存储提供的iSCSI卷建立连接,之后又logout,虽然client端dm...1. 也就是一条命令,重点是命令参数的详解 先查看失效的链接: for f in $(find $1 -type l); do [ ! -...
  • linux用户的主目录

    万次阅读 2014-05-27 20:11:44
    ~在linux代表用户主目录 对一般用户 目录是Linux系统组织文件的种特殊文件。为使用户更好地使用目录,我们介绍有关目录的一些基本概念。  (1)工作目录与用户主目录  从逻辑上讲,用户在登录到Linux系统...
  • find . -name .svn -type d -exec rm -rf {} \;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 474,329
精华内容 189,731
关键字:

怎样删除目录中的一条目录