En basit yol, kabuk ikamesilocate
olarak geçmek , örneğin:
vim $(locate filename123)
Düzenlemek için dosya adlarını iletmek find
yerine kullanmayı da düşünebilirsiniz locate
, örneğin:
find . -name 'filename123' -exec vim {} +
Unix / OSX üzerinde kullanabilirsiniz xargs
ile -o
, parametre gibi:
locate filename123 | xargs -o vim
-o
Komutu çalıştırmadan önce stdin'i alt süreçte / dev / tty olarak yeniden açın. Bu, xargs'ın etkileşimli bir uygulama çalıştırmasını istiyorsanız kullanışlıdır.
Veya Linux'ta aşağıdakileri kullanarak aşağıdaki geçici çözümü deneyin:
locate filename123 | xargs -J% sh -c 'vim < /dev/tty $@'
Farklı komutlar kullanıyorsanız, bunu başarmak için komut yerine kullanın:
vim $(locate filename123)
vim `locate filename123`
Alternatif olarak , tty tahsisini zorlamak parallel
yerine GNU kullanın, xargs
örneğin:
locate filename123 | parallel -X --tty vi
Not: parallel
Unix / OSX'te farklı parametreleri olduğundan ve tty'yi desteklemediğinden çalışmaz.
İyi (gibi birçok diğer popüler komutlar sözde tty tahsisini sağlayan -t
içinde ssh
), bu yüzden yardım edin.
Başka bir öneri de vipe
(bir Vim komut borusu) kullanmak veya aşağıdaki basit komut dosyasını kullanmaktır:
#!/bin/sh
# usage: locate filename123 | vip
exec vim < /dev/tty "$@"
İlişkili: