przenieś pliki określonego wzorca do innego katalogu

15

W katalogu /home/inmam pliki takie jak to:

crust.MC12345.txt 
crust.etcMC12345.txt
crust.MC23456.txt
crust.etcMC23456.txt 
crust.etctcMC23456.txt 

Muszę tylko przejść crust.etcMC12345.txti przejść crust.etcMC23456.txtdo innego /home/outkatalogu. Jakiego wzorca używam w poleceniu mv dla powyższego scenariusza?

użytkownik86683
źródło
1
Wzór jest nieco niejasny. Czy możesz edytować swoje pytanie, aby uwzględnić niektóre nazwy plików, które pasują, a niektóre nie pasują?
user000001
kiedy używam wzoru crust. * MC * .txt w komendzie mv przenosi wszystkie 4 pliki tam, gdzie, jak potrzebuję tylko crust.etcMC12345.txt i crust.etcMC23456.txt
user86683
Dlaczego więc nie zrobić mv crust.etc* dest/?
user000001
próbowałem i zadziałało. wielkie dzięki. ale co jeśli nie wiesz, ile literałów jest przed MC, takich jak etctMC123.txt i etctcMC125.txt
user86683
1
Próbowałem zaktualizować twoje Q, czy możesz poświęcić chwilę i pomóc wszystkim pomóc? Nie jest jasne, jakie pliki masz i jakie pliki chcesz przenieść.
slm

Odpowiedzi:

20

Jeśli dobrze rozumiem twoje pytanie, odpowiedź jest bardzo prosta:

mv crust.etcMC* /home/out

lub jeśli etcnie jest ciągiem literalnym, ale na przykład dowolnymi trzema znakami, to:

mv crust.???MC* /home/out
jimmij
źródło
Mam również inne pliki o nazwach takich jak crust.tecMC12345.txt crust.etcMC1232.txt i tak dalej
user86683
Proszę zobaczyć edycję mojej odpowiedzi i dokładnie określić, jakie macie pliki.
jimmij
crust.etcMC123.txt, crust.tecMC234.txt, crust.cetMC345.txt, crust.MC123.txt to kilka przykładowych plików w moim katalogu, w jaki sposób mam tylko pliki mv o nazwach crust.tecMCxxx.txt, więc crust.xxMCxxx.txt x jest zmienna
user86683
4
Jest to niezgodne z pytaniem powyżej: i need files with names crust.etcMC.xyz. A teraz mówisz do i only mv files with names crust.tecMCxxx.txt. Więc chcesz się poruszać, crust.etcMC*czy tylko crust.tecMC*jedno, czy drugie? Nie spiesz się z odpowiedzią, nie spiesz się, edytuj pytanie, dbając o właściwe formatowanie i dokładnie wyjaśnij, czego chcesz.
jimmij
1

Jeśli chcesz przenosić pliki, które mają co najmniej jeden znak pomiędzy crust.i MCmożesz użyć

mv crust.?*MC /home/out

Tutaj ?oznacza jeden literał i *zero lub więcej, a zatem kombinacja ?*oznacza jeden lub więcej znaków. Dlatego pominie pliki takie jak crust.MC12345.txt.

ttq
źródło
Nie jestem pewien, dlaczego głosowanie negatywne, ponieważ wydaje mi się, że jest to poprawna odpowiedź na pytanie, które zostało wyjaśnione w drugim komentarzu OP po pytaniu.
ttq