标签: rm

为什么 rm 命令不删除文件?

当我今天访问我的 Ubuntu 16.04 服务器并想要删除文件“test2”时,它根本没有被删除!

我用过

rm test2
Run Code Online (Sandbox Code Playgroud)

rm -f test2
Run Code Online (Sandbox Code Playgroud)

但它仍然没有删除它,您可以在这里阅读:

root@icinga:~# ls
basket  desd.save  packages  scripts  src  test2  test5  unused
root@icinga:~# rm test2
root@icinga:~# ls
basket  desd.save  packages  scripts  src  test2  test5  unused
root@icinga:~# rm -f test2
root@icinga:~# ls
basket  desd.save  packages  scripts  src  test2  test5  unused
Run Code Online (Sandbox Code Playgroud)

我也尝试过删除其他文件,但没有成功!

我是“test2”的所有者,使用ls -la test2你可以看到我有读写这个文件的权限!

root@icinga:~# ls -la test2
-rw-r--r-- 1 root root 9 Nov 11 20:33 test2
Run Code Online (Sandbox Code Playgroud)

使用which rm它说/bin/rm

root@icinga:~# which rm
/bin/rm
Run Code Online (Sandbox Code Playgroud)

而且也不\rm …

bash shell rm ubuntu-16.04

7
推荐指数
1
解决办法
4万
查看次数

删除在某些时间戳之间创建的文件.

昨晚我有一个脚本有点疯狂,并在凌晨3点到凌晨3点30分之间创建了一堆目录.是否有一个快速的一个衬垫,将打猎这些并为我删除它们?

linux sorting time debian rm

6
推荐指数
1
解决办法
1万
查看次数

像“rm -f”那样强行删除文件或强行从目录中取消链接文件路径

我的代码如下 -

#!/usr/bin/env python
import time, glob, os, sys
from datetime import date, timedelta

try:
    dpath = sys.argv[1]+"/"
except:
    print "usage: " + sys.argv[0] +" <dir_path_to_purge_files>"
    sys.exit(1)
print dpath
day_minus_mtime = time.mktime(date.today().timetuple())
g = glob.glob(dpath+"*")
for f in g:
        try:
                if day_minus_mtime > os.path.getmtime(f):
                        os.remove(f)
                        print "Removed: "+f
        except OSError, e:
                print "Not able to Remove: "+f , e
Run Code Online (Sandbox Code Playgroud)

我相信 os.remove(file) 相当于 linux 中的“rm文件”。

我想知道“rm -f file”的等效函数。强行删除文件或强行从目录中取消链接文件路径。

上面的代码也试图清除比今天更旧的文件。我有一种情况,文件没有被删除,因为它由于所有权而被“写保护”。但是当我对同一个文件使用“rm -f”时;它正在被删除。

我认为最好问一个问题,即使这听起来很愚蠢

python linux file rm

6
推荐指数
1
解决办法
9057
查看次数

Bash:"rm -d"和"rm -R"有什么区别?

问题

  • Bash中的命令rm -drm -R命令有什么区别?
  • 我应该使用哪一个?

细节

根据rm命令的手册页:

  • rm -d 尝试删除目录以及其他类型的文件.
  • rm -R尝试删除以每个文件参数为根的文件层次结构.-R选项表示-d选项.

现在,我知道最后的陈述(-R暗示-d),这似乎可以回答我的问题.但是,我仍然想知道为什么两个命令标志首先存在,如果他们认为它们的相同之处.

此外,因为我仍然在学习Bash,我认为最好知道哪个选项是Bash程序员(传统上)的首选,以及为什么.

bash terminal rm

6
推荐指数
1
解决办法
1万
查看次数

解释rm ./-rf"技巧"

这个问题说明:

令人惊讶的是,有多少用户不了解这些rm ./-rfrm -- -rf技巧.

我不敢尝试这些,但对他们的所作所为感到好奇.它们也很难搜索......

有人可以开导我吗?

unix bash command-line rm

6
推荐指数
2
解决办法
2435
查看次数

如何从文件夹中删除除少数文件夹以外的所有文件/文件夹?

我正在尝试为debian包编写维护者脚本.假设我有一个目录结构如下:

application/
----application/file1.txt
----application/file2.txt
----application/config
--------application/config/c1.conf
--------application/config/c2.conf
----application/logs
--------application/logs/l1.txt
--------application/logs/l2.txt
----application/src
--------application/src/static/
------------application/src/static/js
------------application/src/static/css
--------application/src/s1.py
--------application/src/s2.py
----application/lib
--------application/src/js/
--------application/src/css/
Run Code Online (Sandbox Code Playgroud)

现在我想删除除所有文件/文件夹config,并logs(在这种情况下,srclib文件夹,file1.txt以及file2.txt文件).我PWD目前是appliaction/dir 的父母(也就是说,我可以application在我看到PWD).

我应该使用什么命令(小的bash script会很棒)?(我尝试了rm -rf一些选项,但错误地删除了其他文件,所以我想在尝试其他任何事情之前知道正确的答案!)

bash ubuntu rm delete-directory

6
推荐指数
1
解决办法
445
查看次数

删除超过X天的目录

所以我在这里查看了有关删除超过14天的目录的每个脚本.我编写的脚本使用文件但由于某种原因它不删除目录.所以这是我的脚本.

#!/bin/bash
find /TBD/* -mtim +1 | xargs rm -rf
Run Code Online (Sandbox Code Playgroud)

所以这段代码成功删除了TBD中的FILES,但它留下了两个目录.我检查了它们的时间戳,根据时间戳,它们是自上次修改后至少2天.特别是12月16日16:10所以我无法弄清楚这一点.我运行的crontab每分钟运行一次并记录日志,它只显示日志.

+ /scripts/deletebackups.sh: :2:BASH_XTRACEFD=3xargs rm -rf
+ /scripts/deletebackups.sh: :2: BASH_XTRACEFD=3find /TBD/contents TBD/contents -mtime +1
Run Code Online (Sandbox Code Playgroud)

我使用内容,因为内容实际上是我们的pxe服务器中的人名.我检查了这两个目录中的每个文件和文件夹,它们的时间戳和它们应该是的父目录相同,但它仍然没有删除.

这可能是权限吗?我使用sudo nano deletebackups.sh编写了脚本当我在最左边的TBD下键入ls时,它显示了两个不会删除的目录中的drwxr-xr-x 3 hscadministrator root 4096 DEC 16 16:10.我对这些字母的含义并不过分熟悉.

我已经尝试过的这段代码的其他迭代

find /TBD/* -mtime +1 rm -r {} \;
Run Code Online (Sandbox Code Playgroud)

linux directory bash rm crontab

6
推荐指数
2
解决办法
2万
查看次数

除了少数例外,如何使用rimraf删除所有内容

我试图删除所有.dot文件,除了.git和所有*.js除一人外exception.js,但我失败

安装

git clone git@github.com:iamstarkov/rimraf-test.git
cd rimraf-test
Run Code Online (Sandbox Code Playgroud)

测试

npm test # it fails
Run Code Online (Sandbox Code Playgroud)

有谁能够帮助我?

rm node.js

6
推荐指数
1
解决办法
3645
查看次数

使用find和xargs删除带有rm的文件

当我做

rm file.txt
Run Code Online (Sandbox Code Playgroud)

要么

rm *.txt
Run Code Online (Sandbox Code Playgroud)

我被提示输入每个文件,因为我没有指定-f选项rm.

但是当我这样做时:

find . -type f -name '*.txt' | xargs rm
Run Code Online (Sandbox Code Playgroud)

在没有确认的情况下删除文件.

这背后的逻辑是什么?是否有可能在某些文档中找到原因?我无法解释为什么会出现这种情况.

linux rm xargs

6
推荐指数
2
解决办法
2万
查看次数

自动解决rm无法删除路径:设备或资源繁忙错误

/path/to/dir我正在尝试使用该命令删除目录rm -rf。不幸的是我得到了错误

rm: cannot remove '/path/to/dir/.nfsdda293a660f276ca0000000a': Device or resource busy
Run Code Online (Sandbox Code Playgroud)

经过一番研究后,我意识到我需要找到哪个进程正在使用该文件,然后才能删除它:

lsof /path/to/dir/.nfsdda293a660f276ca0000000a
Run Code Online (Sandbox Code Playgroud)

这将返回与进程关联的 PID:

COMMAND   PID
python    28594
Run Code Online (Sandbox Code Playgroud)

然后我杀死 PID 并再次尝试删除,但我仍然收到最初的错误。

如何强制/path/to/dir脚本内的脚本自动删除,无需人工干预?

unix linux bash rm lsof

6
推荐指数
1
解决办法
4万
查看次数