Можно передать tar по каналу через ssh сессию:
$ tar czf - <files> | ssh user@host "cd /wherever && tar xvzf -"
Прямой эквивалент
find . -iname <filename>
который перечислит все файлы и названные каталоги <filename>
в текущем каталоге и любых подкаталогах, игнорируя регистр.
Если Ваша версия находки не поддерживает -iname
, можно использовать -name
вместо этого. Отметьте это, в отличие от этого, -iname
, -name
чувствительно к регистру.
Если Вы только хотите перечислить названные файлы <filename>
, и не каталоги, добавить -type f
find . -iname <filename> -type f
Если Вы хотите использовать подстановочные знаки, необходимо поместить кавычки вокруг этого, например.
find . -iname "*.txt" -type f
иначе оболочка развернет его.
Как другие указали, можно также сделать:
find . | grep "\.txt$"
grep
распечатает строки на основе регулярных выражений, которые более мощны, чем подстановочные знаки, но имеют другой синтаксис.
Посмотрите man find
и man grep
для получения дополнительной информации.
Некоторые оболочки позволяют ls **/filename
, который довольно удобен.
shopt -s globstar; echo **/filename
эквивалентно find . -name "filename"
. Это также работает в zsh.
– Mikel
10.02.2011, 06:41
shopt -s globstar
, это будет, вероятно, работать на Вас. Рекурсивный globbing является функцией, которая доступна только в некоторых оболочках, и иногда, это не находится на по умолчанию.
– Shawn J. Goff
13.04.2014, 06:39
shopt
команда включает опцию globstar on
. Теперь это работает как очарование.Большое спасибо.
– Sopalajo de Arrierez
13.04.2014, 15:05
find . -regextype posix-egrep -regex '.*filename.*'
(Я не знаю если egrep
часть важна, но Вы использовали egrep
в Вашем ответе, таким образом, я включал его)
– Michael Mrozek♦
09.02.2011, 22:29
grep
регулярные выражения использования, в то время как команда DOS использует подстановочные знаки оболочки.
– Mikel
09.02.2011, 22:36
find . -name "*.*"
не сделает то, что Вы ожидали бы от фона DOS. Шарики достаточно близки, чтобы быть распознаваемыми, тем не менее, в то время как regexes являются совершенно новым зверем.
– Jander
10.02.2011, 10:14
*.*.*
в современной DOS т.е. окнах cmd? Что относительно *.*.*.*
?
– ctrl-alt-delor
30.06.2016, 11:30
<filename>
содержит подстановочные знаки, используйте кавычки вокруг этого, например.find . -name '*.txt'
. – Gilles 'SO- stop being evil' 10.02.2011, 01:03<filename>
поскольку маркером для userinput является дурная привычка в среде командной строки, где< and >
большую часть времени имейте определенное значение. Я предлагаю просто использоватьfilename
, возможно, ИМЯ ФАЙЛА для подчеркивания этого. Большинство людей поймет, и те, кто не будет, мог бы нанести ущерб, если не поняв, что они, как предполагается, не совершают нападки меньше или больше - чем знак. обратные галочки – user unknown 10.02.2011, 10:25<filename>
конвенция в большом количестве документации UNIX, таким образом, я думаю, что для людей полезно знать о нем, но я соглашаюсьFILENAME
могло бы быть легче понять. – Mikel 10.02.2011, 12:48find -iname <filename>
лучше, так как это нечувствительно к регистру как DOS – Agnel Kurian 16.02.2014, 19:18