标签: rm

Bash脚本删除除特定文件和目录之外的所有文件和目录

我正在尝试编写一个非常简单的Bash shell脚本,该脚本将在特定目录中cd,它将删除除少数选定的文件和目录之外的所有文件和目录,然后cd回原始目录.

我的代码是:

#!/bin/bash 
cd /path/to/desired/directory
shopt -s extglob
rm !\(filename1\|filename2\|filename3\) -rf
cd -
Run Code Online (Sandbox Code Playgroud)

我已经尝试了许多不同的方式来写符号"("和"|",单或双引号或反斜线但是毫无效果.注意,.shopt -s extglobrm !(filename1|filename2) -rf外部的脚本做工精细.

可能是我提出了一个我无法看到的标准和基本的bash脚本错误,但经验即将到来......

有什么建议!?提前致谢.

bash shell rm

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

递归解压缩文件,然后删除原始文件,从shell中保留解压缩的文件

到目前为止,我已经想出了如何使用find递归解压缩所有文件:

find . -depth -name `*.zip` -exec /usr/bin/unzip -n {} \; 
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何在提取后一次删除一个zip文件.在-a -exec中添加rm*.zip会在提取之前删除每个目录中的大多数zip文件.通过包含rm命令的脚本(使用-i启用测试)管道导致找不到任何*.zips(或者至少是它所抱怨的).当然,在许多文件名中都有空格,但此时在sed命令中添加_的语法有点超出我的意思.谢谢您帮忙!

bash rm unzip

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

'find -delete'和'rm -rf'之间的区别?

我想以递归方式从特定目录中删除文件.所以,我用过

find . -wholename "*.txt" -delete
Run Code Online (Sandbox Code Playgroud)

我们也可以使用删除文件

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

使用rm和删除文件有什么区别find

unix rm delete-file

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

无法删除 .git:目录不为空

无法删除.git

我有一个 git 存储库,Rift我正在尝试删除它。在尝试运行时rm -rf,我收到错误:rm: cannot remove 'Rift/.git/objects/pack': Directory not empty

当我导航到目录树的底部时,我发现一个隐藏文件,名为 ,.fuse_hidden后跟一串数字和字母(可能是十六进制)。我可以手动删除此文件,但一旦删除它,就会在其位置创建另一个附加了不同数字和字母字符串的文件。

我已经尝试过rm .git/objects/pack/* && rm -rf .git,,sudo rm -rf .git和,chmod -w .git/objects/pathkillall git都没有成功。

在此输入图像描述

git bash rm fuse delete-file

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

无法在Git中恢复文件

可能重复:
在Git仓库中恢复已删除的文件

我的Git,master和newFeature中有两个分支.在分支newFeature,我首先在终端中物理删除了fileA,然后在Git中删除了

git rm fileA
Run Code Online (Sandbox Code Playgroud)

随后,我跑了

git add .
git commit
Run Code Online (Sandbox Code Playgroud)

现在,我需要的fileA一次.通过简单地切换到分支主机,我知道我可以将其取回.我显然是错误的,因为我无法找到的fileA.

如何使用Git获取fileA?

git rm

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

删除linux中包含双短划线的文件

可能重复:
无法删除终端中的特殊命名文件

我觉得很傻,但是如何在linux中删除一个名为--preserve-permissions?的文件?

我试过了:

rm "--preserve-permissions"

and

rm "\-\-preserve-permissions"
Run Code Online (Sandbox Code Playgroud)

两者都不起作用.谢谢.

linux rm

8
推荐指数
2
解决办法
2410
查看次数

PHP无法在fclose之后取消链接文件

我的脚本完成后我可以删除该文件,但是当它正在运行时我无法触摸它,即使在一个之后fclose().这是我正在尝试使用的代码:

    $Files = glob("$_SERVER[DOCUMENT_ROOT]/files/*.csv");

    $File = fopen($Files[0], "r");        

    //while (($Data = fgetcsv($File)) !== false) {...

    $i = 0;
    while (is_resource($File)) {
        $i && sleep(1);
        echo "Closing handle.\n";
        fclose($File);
        if (++$i > 5)
            die("Could not close handle.");
    }

foreach ($Files as $File) {
    $i = 0;
    while (file_exists($File)) {
        $i && sleep(1);
        echo "Deleting file.\n";
        @unlink($File);
        echo 'www-data@debian:~$ ', $Command = "rm -f '$File' 2>&1", "\n", shell_exec($Command);
        if (++$i > 5)
            die("Could not delete the file.");
    }
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到我试图删除它 …

php fopen rm unlink fclose

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

如何删除名称以" - "开头的文件

在脚本出错后,我最终得到了一个名称以短划线' - '开头的文件

-

我到目前为止尝试过:

-myfile.txt
Run Code Online (Sandbox Code Playgroud)

你有什么主意吗 ?

谢谢

unix bash shell rm

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

Linux rm -rf*删除命令?

我认为rm按字母顺序删除文件,但显然不是在我执行之后.

在此输入图像描述

那么,命令rm执行的顺序是什么?

linux shell command rm

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

为什么 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万
查看次数

标签 统计

rm ×10

bash ×5

shell ×4

delete-file ×2

git ×2

linux ×2

unix ×2

command ×1

fclose ×1

fopen ×1

fuse ×1

php ×1

ubuntu-16.04 ×1

unlink ×1

unzip ×1