linux - 为什么这个 oneliner 会给我一个错误?

标签 linux bash unix ubuntu

我正在写这个 oneliner,它给了我一个错误,比如语法错误、意外的文件结尾。我希望它成为一个 oneliner 并删除在文件夹“uso”中找到的所有具有 .c 扩展名的文件。谢谢!

#! /bin/bash
for file in $(find uso | grep "[.][c]$"); do rm -rf $file done

最佳答案

在末尾添加一个分号。

for file in $(find uso | grep "[.][c]$"); do rm -rf $file; done

顺便说一句,更好的方法是:

find uso -name '*.c' -delete             # GNU find
find uso -name '*.c' -exec rm -f {} \;   # POSIX find

这些将安全地处理包含空格的目录和文件名。

关于linux - 为什么这个 oneliner 会给我一个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28116652/

相关文章:

linux - 使用awk根据条件比较两个文件

c - 进程如何就 IPC 参数进行通信?

ruby - 启动没有前缀 "Ruby"的 Ruby

bash - 脚本如何在bash中知道自己的名字?

linux - 如何根据 bash 查询形成 cron 任务?

linux - 如何在命令行上的现有 BASH 字符串中插入换行符

linux - Shell脚本,并行和多线程?

linux - 是否可以只有id为偶数的线程?

linux - 如何制作我当前系统的 Linux 镜像?

php - Linux - 通过 PHP 创建用户