Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash:如何将这两个find命令组合成一个命令?_Bash_Find_Path Finding - Fatal编程技术网

Bash:如何将这两个find命令组合成一个命令?

Bash:如何将这两个find命令组合成一个命令?,bash,find,path-finding,Bash,Find,Path Finding,我有 第一个查找指定了名称和路径的文件,计算总大小,然后删除它们。第二个查找所有以“@2x.png”结尾的文件,然后尝试从结尾删除“@2x.png”,然后删除该文件 那么,如何将这两个命令组合到一个find中呢 注意:有以“@2x.png”结尾的直接路径和名称(在第一个命令中),我不想从中删除“@2x.png”。所以我不能把它们结合在一起。e、 g(如果它们只是组合在一起)具有file@2x.png在第一个命令中(意味着我想删除该确切名称),这意味着sed将删除“@2x”,这不是我想要做的 因为

我有

第一个查找指定了名称和路径的文件,计算总大小,然后删除它们。第二个查找所有以“@2x.png”结尾的文件,然后尝试从结尾删除“@2x.png”,然后删除该文件

那么,如何将这两个命令组合到一个find中呢

注意:有以“@2x.png”结尾的直接路径和名称(在第一个命令中),我不想从中删除“@2x.png”。所以我不能把它们结合在一起。e、 g(如果它们只是组合在一起)具有
file@2x.png
在第一个命令中(意味着我想删除该确切名称),这意味着sed将删除“@2x”,这不是我想要做的


因为我不擅长解释:第一个命令中的所有内容都应该指定确切的名称/路径,并且应该由sed修改而不是。第二个命令中的所有内容都应该由sed修改,但我只想为这两个命令运行一个find命令

不是肯定的,我知道您想做什么,但是如果您仍然希望数组在第一个命令中包含相同的内容,但在第二个命令中包含文件

find/\(-name“*.lproj”…-iname“*.tmp”\)-print-o-path”/path/to/location-name'*@2x.png'-exec bash-c'echo rm“${1/\@2x/}”bash{}”

注意:删除上面的
echo
以执行实际
rm
。另外,请注意,如果文件符合添加到数组和删除的条件,则它们将被添加到数组中,但不会被删除,因为
-o
短路,如果您想要相反的结果,请更换顺序

IFS=$'\n' read -d '' -ra files < <(find / -name "*.lproj" ! -iname "En*" ! -name "Base*" -o -name "*@3x.png" -o -name "*@3x.jpg" -o -name "*@3x.3ds" -o -path "/private/var/mobile/Containers/Bundle/Application/*/iTunesArtwork" -o -path "/private/var/mobile/Containers/Bundle/Application/*/*/*-568h@2x.png" -o -name "*~iphone*" ! -path "*/Kik.app/*" ! -path "*/fiverr.app/*" -o -path "/private/var/mobile/Containers/Data/*/*/Library/Caches" -o -path "/private/var/mobile/Documents/Flex/*.dat" -o -path "/private/var/mobile/Containers/Data/*/*/tmp/*" -o -path "/private/var/mobile/Documents/CyDown/*" -o -path "/private/var/db/stash/_.*/Applications/*/*-568h@2x.png" -o -path "/private/var/mobile/Containers/Data/*/*/Library/googleanalytics*" -o -path "/private/var/mobile/Containers/Data/*/*/Library/*FlurryFiles" -o -path "/private/var/mobile/Library/BatteryLife/Archives/*" -o -path "/private/var/tmp/*" -o -path "/private/var/lib/apt/lists/partial/*" -o -path "/private/var/mobile/Library/Logs/*" -o -path "/private/var/logs/*" -o -path "/private/var/root/.bash_history" -o -path "/private/var/mobile/Library/googleanalytics*"  -o -path "/private/var/mobile/Library/Logs/CrashReporter/DiagnosticLogs/*" -o -path "/private/var/mobile/Library/Caches/*"  ! -name "libactivator.plist" -o -iname "*.log" -o -iname "*.old" -o -iname "*.tmp")
du -hc "${files[@]}" 2>/dev/null | tail -1
 rm -r "${files[@]}" >/dev/null 2>&1
find / -path "/path/to/location" -name '*@2x.png' | sed 's/@2x//' | xargs rm