Questions tagged «rm»

rm是删除文件的命令

5
为什么zip和rm命令之间的通配符*如此不同?
我整理了一个脚本来为我执行一些文件操作。我正在使用通配符运算符*将函数应用于一种类型的所有文件,但是我没有得到一件事。我可以将unzip所有文件放在这样的文件夹中 unzip "*".zip 但是,要稍后删除所有zip文件,我需要 rm *.zip 也就是说,它不需要引号。另一方面,如果我只给它*,则解压缩不起作用(警告我“文件不匹配”)。 为什么有什么不同?对我来说,这似乎是完全相同的操作。还是我使用通配符不正确? Unix中通配符的介绍并没有真正涉及到这一点,而且我在rm或zip文档中找不到任何内容。 我在Mac(优胜美地)上使用终端。
58 shell  wildcards  rm  zip 


8
使“ rm”移至垃圾箱
是否有Linux脚本/应用程序,而不是删除文件,而是将其移动到特殊的“垃圾箱”位置?我希望以此作为替代rm(甚至可以别名后者;对此有优缺点)。 “垃圾箱”是指一个特殊的文件夹。单mv $* ~/.trash是第一步,但理想的,这也应该处理捣毁了多个同名的文件,而不会覆盖旧的丢弃的文件,并允许恢复文件到原始位置用一个简单的命令(一种“撤消”)。此外,如果垃圾桶在重新启动时自动清空(或采用类似的机制来防止不断增长的垃圾),那就太好了。 存在对此的部分解决方案,但是特别是“恢复”动作并非微不足道。是否有不依赖图形外壳垃圾系统的现有解决方案? (顺便说一句,关于这种方法是否合理,一直在进行无休止的讨论,而不是使用频繁的备份和VCS。尽管这些讨论是有道理的,但我认为我的要求仍然存在。)
54 shell  rm 

1
“ rm。*”是否会删除父目录?
.*bash 将表达式扩展为包括当前目录和父目录: $ ls -la total 2600 drwxrwxrwx 2 terdon terdon 2162688 Sep 10 16:22 . drwxr-xr-x 142 terdon terdon 491520 Sep 10 15:34 .. -rw-r--r-- 1 terdon terdon 0 Sep 10 16:22 foo $ echo .* . .. 如果我rm -rf .*使用GNU bash在Debian上运行,version 4.2.36(1)-release并且rm从中rm (GNU coreutils) 8.13获得以下消息: $ rm -rf …
53 shell  wildcards  rm  posix 

3
为什么允许rm删除另一个用户拥有的文件?
为什么从rm删除只读文件?我知道,rm只需要对目录具有写许可权即可删除文件。但是我发现很难消化这种行为,在这种行为下我们可以轻松地删除所有者和组不同的文件。 我尝试了以下 mtk:我的用户名 abc:创建了一个新用户 $ ls -l file -rw-rw-r-- 1 mtk mtk 0 Aug 31 15:40 file $ sudo chown abc file $ sudo chgrp abc file $ ls -l file -rw-rw-r-- 1 abc abc 0 Aug 31 15:40 file $ rm file $ ls -l file <deleted> 我以为这不应该被允许。用户应该只能删除其所有权下的文件吗?有人可以阐明为什么允许这样做吗?以及如何避免这种情况?我可以认为仅限制父目录的写权限即可禁止意外删除文件。


5
如何从目录中删除所有子目录?
这个问题是我在此处发布的第一个问题的第二阶段 我有一个目录,其中包含一堆子目录,.zip文件以及未包含在子目录中的其他随机文件。 我想使用命令行脚本从父目录中删除所有子目录,但保留所有不属于任何子目录的zip文件和松散文件。所有子目录都有内容,因此我相信我需要使用-f命令强制将其删除。 因此,基本上,在父目录(或当前目录)中查找的命令会删除其中的所有文件夹,但会保留不是文件夹或包含在文件夹中的所有其他内容和文件。 我知道从命令行删除项目需要特别注意,但是我已经采取了所有必要的预防措施进行远程备份。

5
如何使用通配符递归删除目录?
我正在WD My Book World Edition上通过SSH进行工作。基本上,我想从特定的目录级别开始,然后递归地删除所有匹配的子目录.Apple*。我将如何处理? 我试过了 rm -rf .Apple* 和 rm -fR .Apple* 都没有删除子目录中与该名称匹配的目录。

3
即使以超级用户身份运行,也无法删除文件
我正在将一台机器从RHEL 4迁移到5。不是实际进行升级,而是创建了一个新的VM(两台机器都在云中),并且正在跨这两者之间复制数据。 我遇到了以下文件,该文件需要从新计算机上删除,但即使以root用户身份运行也无法删除: -rw------- 1 2003 2003 219 jan 11 14:22 .bash_history 该文件位于/ home / USER /中,其中USER是制造计算机的人员的帐户。他在旧计算机上没有帐户,因此我试图删除他的主文件夹,以便新计算机与旧计算机相符,但是出现以下错误: rm: ne peut enlever `.bash_history': Opération non permise (从法语翻译:无法删除XXX,不允许进行操作) 我尝试使用以下命令,但这没有什么区别: chattr -i .bash_history 是使用ID 2003创建用户的唯一选择,还是还有其他解决方法? 编辑 我尝试使用rm -f,但遇到相同的错误。我首先遇到同样的错误chmod 777。 我已经能够访问chown包含要删除的文件的文件夹,因此它是: drwx------ 2 root root 1024 jan 24 15:58 USER 编辑2 lsattr按照Angus的建议运行命令,输出如下: -----a------- USER/.bash_history …
48 permissions  rhel  root  rm 


5
给grep输出到rm
我正在尝试将grep输出传递给rm,但它会输出无用的东西。是否需要任何开关rm?或者可以rm直接提供正则表达式? ls | grep '^\[Daruchini'| rm rm:缺少操作数请尝试使用rm --help获取更多信息。
47 bash  grep  rm 

7
将来更改时,如何加固bash脚本以免造成损害?
因此,我删除了我的主文件夹(或更确切地说,是我拥有写权限的所有文件)。发生的是我有 build="build" ... rm -rf "${build}/"* ... <do other things with $build> 在bash脚本中,并在不再需要$build时删除了声明及其所有用法-而是rm。Bash高兴地扩展到rm -rf /*。是的 我感到很愚蠢,安装了备份,重新进行了丢失的工作。试图摆脱耻辱。 现在,我想知道:什么是编写bash脚本以使此类错误不会发生或者至少不太可能发生的技术?例如,我写过吗 FileUtils.rm_rf("#{build}/*") 在Ruby脚本中,解释器会抱怨build没有声明,因此该语言可以保护我。 我在bash中考虑过的内容,除了合计rm(相关问题中的许多答案都提到了,这并非没有问题): rm -rf "./${build}/"* 那会杀死我目前的工作(一个Git回购),但没有别的。 rm在当前目录之外执行操作时,需要进行交互的变体/参数化。(找不到任何内容。)类似的效果。 是这样吗,或者还有其他方法可以编写这种意义上的“健壮” bash脚本吗?
46 bash  shell-script  rm 

16
如何删除文件名中包含非打印字符的文件
我以某种方式设法创建了一个似乎没有文件名的文件。我在以下线程中找到了一些有关如何获取文件更多详细信息的信息。 但是,我尝试了列出的一些建议,但似乎无法删除该文件。我不确定该如何创建,但是在尝试复制xml文件时发生了。 文件上的一些信息如下: > ls -lb total 296 -rw-r--r-- 1 voyager endeavor 137627 Jan 12 12:49 \177 > file * : XML document > ls -i 417777 我试图找到使用inum开关,然后将其通过管道传递到rm,因为这似乎是摆脱它的最简单的方法。但是,下面链接下面的线程底部给出的示例对我来说失败了。示例是: > find -inum 41777 -exec ls -al {} \; find: illegal option -- i find: [-H | -L] path-list predicate-list 因此,我首先尝试使用路径列表,如下所示,但这也不起作用: > …

5
如何删除具有特殊目标的所有符号链接?
使用命令: ls -la * 我可以列出所有符号链接。 如何删除链接到特殊文件夹的所有符号链接? 例如: 在我的目录中,usr/local/bin我有以下条目: lrwxrwxrwx 1 root root 50 Apr 22 14:52 allneeded -> /usr/local/texlive/2011/bin/x86_64-linux/allneeded lrwxrwxrwx 1 root root 47 Apr 22 14:52 amstex -> /usr/local/texlive/2011/bin/x86_64-linux/amstex lrwxrwxrwx 1 root root 24 Apr 23 19:09 arara -> /home/marco/.arara/arara 现在,我想删除路径中的所有链接 /usr/local/texlive/
43 wildcards  symlink  rm 

4
有什么方法可以防止从用户拥有的目录中删除某些文件?
假设用户具有Directory1并且其中包含File1 File2 CantBeDeletedFile 如何使用户永远不会被删除CantBeDeletedFile? 如果更改Directory1的所有权并删除写许可权,则用户将无法删除任何文件。他们也将无法添加新文件等。 我只希望能够设置一些永远不会删除的文件。 更具体的描述。 我正在创建用户个人资料。我正在其桌面中创建应用程序启动器文件。因此,我想设置一些启动器文件(.desktop)并将其制成,以便用户只能启动它们,并且它们不能重命名或删除,只能启动。 当前,如果用户拥有包含任何文件的目录。他可以删除。 如果没有针对所有* nix的通用方法,则为Linux和ext4 FS。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.