我正在尝试将命令的结果通过管道传输find
到 bash 脚本。这是为了简化(也许自动化)我一直在研究的过程。
这是我想运行的命令
find . -type f -iname '*.mp4' -exec echo {}|./indexer.sh \;
indexer.sh
是ofcchmod +x
所以它可以执行。
indexer.sh
目前包含
#!/bin/zsh
read foo
echo "You entered '$foo'"
Run Code Online (Sandbox Code Playgroud)
如果我运行$ echo foo | ./indexer.sh
我得到的输出
You entered 'foo'
但是当我运行时,find . -type f -iname '*.mp4' -exec echo {}|./indexer.sh \;
我收到以下错误消息:
find: -exec: no terminating ";" or "+"
You entered ''
Run Code Online (Sandbox Code Playgroud)
那么如何将 find, 的输出通过管道传输到我的脚本中呢?
我想递归搜索文件夹,提取 RAR 文件,然后删除 .nfo、.svf 和 RAR 文件(*.rar 和 *.r1、*.r2 等)。
我找到了一个递归提取但不删除的命令:
find ./ -name '*.rar' -exec unrar e {} \;
Run Code Online (Sandbox Code Playgroud) 我已经设法用 photorec 抓取了几个硬盘的一些数据,但我不知道这些文件是如何保存的,而且在那些recup_dir.*
. 所以我的想法是按文件结尾分类。所以所有 *.gif 最终都会/home/mike/photorec/12gb/sorted/gif
变成或类似的东西。但我不知道如何搜索根目录,获取文件扩展名并将 /cp 移动到该文件夹(如果不存在,则创建该文件夹)。
这样我就可以删除不必要的文件夹/文件,例如dll
.
假设我有三个文件夹:
~/photorec/80gb
~/photorec/120gb
~/photorec/100gb
Run Code Online (Sandbox Code Playgroud)
Photorec产生大量的文件夹命名的recup_dir.1
,recup_dir.2
等等,如:
.
??? recup_dir.1
??? recup_dir.10
??? recup_dir.11
??? recup_dir.12
??? recup_dir.9
??? f21750248.jpg
??? f21750275.gif
??? f21750277.gif
??? f21750281.gif
??? f21750296.jpg
Run Code Online (Sandbox Code Playgroud)
我想在里面cd 80gb
运行一个命令或执行一个 bash 脚本,~/photorec/80gb/
以便创建一个新文件夹sorted
,然后在里面 sorted 我从 中获取所有文件recup_dirs
,按找到的文件扩展名排序。
.
??? recup_dir.1
??? recup_dir.10
??? recup_dir.11
??? recup_dir.12
??? sorted
??? gif
??? f21750275.gif
??? f21750277.gif
??? f21750281.gif
??? …
Run Code Online (Sandbox Code Playgroud) 我有一个主要包含mp4
视频的文件夹。我想提取这些视频的音频。
for i in $(ls); do echo ffmpeg -i $i $i_mp3; done
此命令对 none mp4 文件没有任何关注,它似乎在ls
命令中添加了换行符。
我正在尝试创建一个 bash 脚本,它将在系统中搜索图像jpg, jpeg, png, gif
并将它们复制到新位置。但我很难弄清楚如何做到这一点。
这是我到目前为止
#!/bin/bash
STRING="Copy system images \n"
echo $STRING
# settings
$LOCATION = ~/backup/images/$(date)
$FILETYPE = jpg, jpeg, png, gif
# in PHP
# preg_replace("/[^, ]+/", "*.$0", $input_lines);
# bash?? filetype should be *.jpg, *.jpeg, *.png, *.png
# find all images defined in FILETYPE
find ~/ -type f -iname $FILETYPE > images.txt
&& echo "Number of images loccated: "
&& wc -l images.txt
# read every line (image path), and copy to new …
Run Code Online (Sandbox Code Playgroud)