Поиск ключевого слова в человеке

Что вы можете сделать, так это объявить функцию shell , и передать каждый результат find в цикл while, который будет вызывать эту функцию для каждого каталога.

#!/bin/bash
function f 
{

  echo "THIS IS " $(pwd)
  ls
}

find . -maxdepth 1 -type d -name "bin" -printf "%P\n" | while read DIRNAME;
do

  cd $DIRNAME
  f
done

Вот пример выполнения:

$ ./findAndFunction.sh                                                                               
THIS IS  /home/xieerqi/bin
autostart-script.sh  c  java  perl  python  README.md  sergrep  shell
0
15.10.2018, 10:45
1 ответ

Отдельно протестируйте извлечение архива, затем подсчитайте количество файлов, если оно прошло успешно. Если вы не знаете имя каталога, в который извлекается архив, создайте новый каталог и извлеките туда архив. Может быть, что-то вроде этого:

#!/bin/sh

if [ -d extracted ]; then
    echo 'please remove directory "extracted"' >&2
    exit 1
fi

mkdir extracted
if ! tar -xvz -f bad_file.tar.gz -C extracted; then
    echo 'extraction failed' >&2
    echo 'directory "extracted" may contain partially extracted archive' >&2
    exit 1
fi

# extraction of archive was successful, count files extracted
find extracted -type f -exec echo. ';' | wc -l

findв конце выводит точку для каждого файла в каталоге extracted.wc -lподсчитывает количество точек. Мы делаем это таким образом, если путь в извлеченном каталоге содержит встроенную новую строку.

1
28.01.2020, 02:42

Теги

Похожие вопросы