В bash (не простой sh) вы можете использовать шаблон**/
подстановочных знаковдля рекурсивного обхода каталогов. Сначала вам нужно установить параметр globstar
. Например, для запуска mycommand
для каждого файла .fastq
в папке /project/samples
:
#!/bin/bash
shopt -s globstar
for x in /project/samples/**/*.fastq; do
mycommand "$x"
done
Это доступно только начиная с bash 4.0 (поэтому не на bash по умолчанию в OSX, но эта функция также доступна в zsh). Помните, что в версиях bash до 4.3 он также проходит по символическим ссылкам на каталоги.
Если вам нужно запустить одну команду для всех файлов, вы можете:
mycommand /project/samples/**/*.fastq
Однако вы можете столкнуться с ограничением длины командной строки. Это помогает использовать относительный путь:
cd /project/samples
mycommand **/*.fastq
Если это все еще не подходит, вам нужно найти другое решение, чтобы делать все, что вам нужно, которое не включает передачу всех имен файлов в качестве аргументов этой команде. сразу.
Мне не удалось найти здесь конкретную проблему
Это может быть проблема
оборудования - адаптера Wi-Fi или
Ошибка функционирования модуля ядра или
Служба демона диспетчера сети повреждена.
Используйте эти команды, чтобы попробовать
service network-manager stop
ifconfig wlan0 down
ifconfig wlan0 up
wpa_supplicant -B -i wlan0 -c> (wpa_passphrase essid key)
dhclient wlan0
подтвердите ваше соединение
ping 8.8.8.8