微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从另一个文件夹linux shell中删除一个文件夹中的文件

我有两个目录。 DirA包含DirA中的所有文件。 我想从DirA删除DirB中的所有文件。 如何在Linux命令行中做到这一点?

我正在使用Ubuntu的。

谢谢

在Windows 7中更改文件名并根据文件path移动文件

缺less参数-m在Windows PowerShell中使用svn

命令行提示符跨Windows操作系统的path

出现错误时,启动/等待/ b不退出程序

通过java applciation从内部调用一个命令行工具

带有空格的Apache CLI选项值

使用批处理脚本查找正确的父文件

un gzip多个文件

使用命令提示符意外删除具有长扩展名的文件

命令行输出不redirect到文件

cd DirB for i in * do rm DirA/"$i" done

编辑:在$i周围使用双引号来处理包含空格的文件名。

你可以做我的循环:

for fi DirB/*; do fn="${f##*/}" [[ -f "$fn" ]] && rm -f "DirA/$fn" done

在这里你有一个例子,执行输出,如果文件名将包含空格(顺便说一句,我不建议,不舒服的东西)也可以工作:

root@folgore:/tmp/test# tree . ├── DirA │ ├── a │ ├── b │ ├── c │ └── d └── DirB ├── a ├── b ├── e ├── g ├── h └── r 2 directories,10 files root@folgore:/tmp/test# for f in `ls DirB/* | sed 's/ /_SPC_/g'`;do fa=`echo $f | sed 's/_SPC_/ /g;s/^DirB//DirA//'`;echo "removing $fa if exists";rm -f "$fa";done removing DirA/a if exists removing DirA/b if exists removing DirA/e if exists removing DirA/g if exists removing DirA/h if exists removing DirA/r if exists root@folgore:/tmp/test# tree . ├── DirA │ ├── c │ └── d └── DirB ├── a ├── b ├── e ├── g ├── h └── r 2 directories,8 files

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐