小编Ada*_*dam的帖子

如何将“find”的结果传送到我的 bash 脚本?

我正在尝试将命令的结果通过管道传输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, 的输出通过管道传输到我的脚本中呢?

bash

14
推荐指数
3
解决办法
3947
查看次数

递归搜索RAR文件并解压,解压后删除

我想递归搜索文件夹,提取 RAR 文件,然后删除 .nfo、.svf 和 RAR 文件(*.rar 和 *.r1、*.r2 等)。

我找到了一个递归提取但不删除的命令:

find ./ -name '*.rar' -exec unrar e {} \;
Run Code Online (Sandbox Code Playgroud)

command-line

6
推荐指数
1
解决办法
6985
查看次数

搜索文件夹,找到并复制文件到新文件夹对应的文件结尾

我已经设法用 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.1recup_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)

command-line bash

5
推荐指数
2
解决办法
1663
查看次数

使用ffmpeg将mp4文件夹转换为mp3?

我有一个主要包含mp4视频的文件夹。我想提取这些视频的音频。

for i in $(ls); do echo ffmpeg -i $i $i_mp3; done

此命令对 none mp4 文件没有任何关注,它似乎在ls命令中添加了换行符。

bash

3
推荐指数
1
解决办法
1639
查看次数

将系统上的所有图像复制到一个文件夹中

我正在尝试创建一个 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)

bash scripts

0
推荐指数
1
解决办法
4914
查看次数

标签 统计

bash ×4

command-line ×2

scripts ×1