标签: rm

删除目录中所有目录下的文件

我最近需要删除父目录中约 40 个目录中的所有文件,而不删除目录本身。我最终手动这样做了,但是有没有更有效的方法来做到这一点?即,有没有一个linux命令可以做到这一点?

为了更清楚地理解我的意思:

HomeDirectoryName --> subdirectoryName --> 4个模拟信息文件

我有上面的路径,除了有 40 个子目录,每个子目录有 4 个模拟文件。我需要删除所有模拟信息文件而不删除“subdirectoryName”目录。

这可能是不可能的,因为我到处搜索了大约一个小时,最后决定手动完成。

command-line rm directory

3
推荐指数
1
解决办法
4286
查看次数

如果我们执行 rm -rf ../** 会发生什么?我们可以恢复数据吗?

我做了类似的事情:

$ cd /A/B/
$ rm -rf ./*
$ rm -rf ../**
Run Code Online (Sandbox Code Playgroud)

由于网络问题,我的系统与 Ubuntu 断开了连接。当我回来时,文件夹中没有文件或文件夹/A

command-line rm wildcards

3
推荐指数
2
解决办法
4104
查看次数

如何让脚本在检查目录存在后删除该目录?

如何制作一个 bash 脚本,该脚本在运行时将检查文件/文件夹是否存在以及文件/文件夹是否存在并将其删除?

command-line bash rm

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

删除脚本中的某些文件/目录;需要修改

我和这个问题有同样的问题如何从文件夹中删除除少数文件夹之外的所有文件/文件夹?几次。这就是我想为命令 rmnot 自己编写脚本的原因。如有必要,即使使用通配符,它​​也应该使用任意数量的文件,并删除同一目录中除这些文件之外的任何内容(非递归)。典型的例子是:

rmnot *tex *bib *png
Run Code Online (Sandbox Code Playgroud)

我的脚本可以工作,但是由于我没有经验并且想以正确的方式学习它,有没有更优雅的方法来编写这个脚本?

#!/bin/zsh

insert="-name . -or -name .."

for i in {1..$#}; do
    insert="$insert -or -name ${(P)i}"
done

insert="\( $insert \)"

eval "find -not $insert -exec rm {} \;"
Run Code Online (Sandbox Code Playgroud)

PS:我必须使用 ZSH,因为${(P)i}我认为其他任何东西都可以在 bash 中使用。

======优化版本======

 #!/bin/bash

 insert="-name . -or -name .."

 for i; do
    insert="$insert -or -name $i"
 done

 insert="\( $insert \)"

 find -maxdepth 1 -not $insert -delete
Run Code Online (Sandbox Code Playgroud)

command-line scripts zsh rm

2
推荐指数
1
解决办法
1643
查看次数

递归删除子目录和文件

我有以下文件和目录配置:

-Parent_dir
    |-delme_dir
    |-delme_file
    |-aFile
    |-sub_dir
        |-delme_dir
        |-delme_file
        |-aFile
        |-sub_dir
            |-delme_dir
            |-delme_file
            |-aFile
    |-sub_dir2
        |-delme_dir
        |-delme_file
        |-aFile
Run Code Online (Sandbox Code Playgroud)

是否有一个命令可以从 Parent_dir 使用递归删除所有delme_dir 目录delme_file 文件

command-line rm

2
推荐指数
1
解决办法
5827
查看次数

如何仅删除在特定日期和时间之前创建的文件

我想从我的目录中删除在 04/29/2018 下午 4:00 之前创建的文件。

谢谢

bash scripts files rm date

2
推荐指数
1
解决办法
9052
查看次数

主文件夹内容丢失:错误使用 rm?

我使用的是 Ubuntu-Mate 20.04,我丢失了主文件夹的大部分内容。我认为这可能是由于错误地使用了 sudo 的 \xe2\x80\x9crm\xe2\x80\x9d 命令,但不确定是否可能是其他原因。

\n

我解释一下:我试图删除 /home/user2 上的文件夹( \xe2\x80\x9ctargetfolder (something)\xe2\x80\x9d )及其内容,同时以 user1 身份登录(user1 具有 sudo 权限)。所以我做了:

\n
sudo rm -r /home/user2/targetfolder (something)/ \n
Run Code Online (Sandbox Code Playgroud)\n

起初 rm 由于括号给出了一些错误消息 - 我的意思是:( ) -,所以我用 * 替换了文件夹 \xe2\x80\x99s 名称的一部分,然后执行了:

\n
sudo rm -r /home/user2/targetfolder */\n
Run Code Online (Sandbox Code Playgroud)\n

注意:由于空格('targetfolder *'),我可能使用引号作为文件夹名称,尽管在终端中注册的最后一个命令没有引号。

\n

据我了解, rm 应该只删除 user2 主文件夹中名称以 \xe2\x80\x9ctargetfolder\xe2\x80\x9d 开头的任何文件夹,但它似乎已经删除了 user2 主文件夹的主要部分用户1。我补充说,因为我不清楚 rm 是否正在工作,所以我关闭了终端杀死,我猜,这个过程。

\n

为了以防万一,user1 和 user2 主文件夹都使用 ecryptfs 进行加密(要在 /home/user2 删除的文件夹位于 .Private 之外,因此未加密)。

\n

所以,我的问题是我使用的 rm 命令是否可以删除 user1 主文件夹的内容(甚至影响系统)。

\n

我最近备份了丢失的内容,但我想确保这不是由于 rm 命令以外的其他问题造成的。 …

command-line rm

2
推荐指数
1
解决办法
1474
查看次数

rm 文件 '??q:q '

我不小心创建了一个名为 ??q:q 的文件,但无法删除它。

rm '??q:q'或者rm '\?\?q\:q' (为了逃避?)说No such file or directory

另一个有趣的事情:在ls它显示名称为??q:q. 但是当我输入时rm <tab><tab>^?^?q:q(我也试图用这个名字删除它)

rm coreutils

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

如何在终端中删除名为“-f”、“-r”或其他名称的目录/文件

只是想知道如何使用终端删除名为“ -f ”、“ -r ”或其他名称的目录/文件。

command-line rm

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

无法使用 sudo 删除目录:权限被拒绝

我试图删除包含文件的目录,但permission denied在 Ubuntu 22.04.1 上出现错误。

我已更改777目录和父目录的权限,但仍然收到错误。

错误的屏幕截图

$ sudo rm *.* 
rm: cannot remove 'Real Economy v1.5.1-4267-1-5-1-1588544476': Permission denied
rm: cannot remove 'Witcher 3 input.settings file backup for 1.32-5844-1-32-1626358844': Permission denied
Run Code Online (Sandbox Code Playgroud)

额外的

包含我尝试删除的目录/文件的目录是 Brave 浏览器和 Firefox 的默认下载目的地。它位于系统磁盘 (SSD) 上。浏览器也不允许我更改下载目的地,这很奇怪。这些文件在此处下载,适用于 Windows(《巫师 3》的模组)。

另一个奇怪的事情是这些是提取的档案(7-zip 文件等)。
我可以删除原始存档文件,但是一旦提取它,我就无法删除提取的目录/文件。

permissions konsole rm

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

为什么 Windows 和 Ubuntu 都无法识别带有特殊字符的文件名?

我试图在 WSL 中的 bash 中附加到文本文件(使用>>运算符)。不幸的是,由于我是初学者,而不是附加到文件,而是使用>>“文本”作为文件名创建了一个新文件,并且 Windows(GUI)和 Ubuntu(rm命令)似乎都无法删除该文件目录(即使使用命令时也会显示dir)。

  • Windows 图形用户界面:

    Windows GUI 中的目录

  • Windows 错误代码:

    Windows 错误代码

  • 重击:

    root@DESKTOP-IA030GJ:/# cd home
    root@DESKTOP-IA030GJ:/home# dir
    English_Class  Finished_Projects  Keeping.txt  Random_Password_Generator_Project  \\n\\n\ -----Changes\   onion_project  pythonwork
    root@DESKTOP-IA030GJ:/home# ls --quoting-style=shell
     English_Class                      '\n\n -----Changes '
     Finished_Projects                   onion_project
     Keeping.txt                         pythonwork
     Random_Password_Generator_Project
    
    Run Code Online (Sandbox Code Playgroud)

command-line bash rm windows-subsystem-for-linux

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

如何删除终端中的 LUKS 标头?

我想知道擦除 LUKS 标头(主要是活动启动分区/磁盘上的标头)是否像执行 a 一样简单,sudo rm -rf / --no-preserve-root或者我是否需要执行不同的命令。会是哪一个呢?

预先感谢您的任何见解!

rm disk-management luks

0
推荐指数
1
解决办法
8379
查看次数

“rm -rf”与“/*”有什么关系?

警告:
为避免灾难性的数据丢失,读者不应运行此程序,也不应对其进行任何更改!

我想了解此命令的作用: sudo rm -rf/*

command-line rm

-1
推荐指数
2
解决办法
1339
查看次数