Если вы нашли похожее на это . Вы должны иметь возможность сделать что-то вроде:
find dir -name '*_tstaAligned.SortbyCoord.bam' -exec bash -c 'mv "$0" "${0/_tstaAligned.SortbyCoord.bam/_tsta.bam}"' "{}" \;
Хотя используется bash $ {var // find_all / substitute_with_this}
, вы сопоставите только файлы, заканчивающиеся на _tstaAligned.SortbyCoord.bam
, так как это образец, данный для find
. Однако вы должны заменить каждое вхождение _tstaAligned.SortbyCoord.bam
в имени, если в каком-либо файле их несколько. (Маловероятно, я думаю.)
Для тестирования сделайте что-нибудь вроде:
find dir -name '*tstaAligned.SortbyCoord.bam' -exec bash -c 'printf "mv \"%s\" \"%s\"\n" "$0" "${0/_tstaAligned.SortbyCoord.bam/_tsta.bam}"' "{}" \;
Ну, строго говоря, POSIX ulimit
, кажется, знает только -f
параметр (максимальный размер файла ), поэтому я полагаю, что ответ "нет".
На практике все оболочки, которые у меня есть в Linux (Bash, Busybox, Dash, Ksh, mksh, yash, zsh ), имеют встроенную ulimit
, которая поддерживает -H
, -S
и -n
.
Я точно не знаю о системах, отличных от -Linux, но справочная страница FreeBSD дляsh(1)
также упоминает их, а в OpenBSD/bin/sh
выглядит как ksh , что также поддерживает их.