【问题标题】:Broken bash function损坏的 bash 功能
【发布时间】:2016-06-27 15:39:04
【问题描述】:

自从我擦除了我的 OSX 安装并重新启动后,这个 bash 功能不再起作用。我可以清楚地看到我正在运行它的文件夹中有 .orig 和 .pyc 文件,但它只是告诉我它找不到任何东西。我完全忘记了这个功能是如何工作的。谁能帮我理解什么是错的?谢谢!

studyClean() {
echo "------------Cleaning...------------"
numCleaned=$(find . -type f -name ".pyc" -print -exec rm -v {} + | wc -l;)
echo "${numCleaned} .pyc files cleaned!"
numCleaned=$(find . -type f -name ".orig" -print -exec rm -v {} + | wc -l;)
echo "${numCleaned} .orig files cleaned!"
}

调用时的终端输出:

| ~/apps/funapp @ Simons-Air (simonbraunstein)
| => studyClean
------------Cleaning------------
       0 .pyc  files cleaned!
       0 .orig files cleaned!
___________________________________________________

【问题讨论】:

  • chepner 在下面的回答解释了问题所在。但是您的命令很奇怪:由于您同时使用-printrm-v 选项,因此您将获得的数字(至少)是实际删除文件数量的两倍!
  • @gniourf_gniourf 谢谢!知道了。会调查!伙计,我认为这个功能比原来清理的要多得多!
  • 你的情况可能没问题,但即使你删除-print,输出的行数至少与删除的文件数一样多: 如果输出是foo\nbar,那两个文件是foobar,还是一个带有嵌入换行符的文件?

标签: bash macos terminal iterm2


【解决方案1】:

不清楚为什么该功能首先起作用。 -name 的参数应该只匹配具有确切名称 .pyc.orig 的文件。请改用-name "*.pyc"-name "*.orig"

【讨论】:

  • 啊,是的。我相信我在 trello 之间复制和粘贴它会导致通配符消失。忽略了这一点!谢谢。
猜你喜欢
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 2017-01-30
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多