Bash 스크립팅의 기본 사항을 얻는 데 문제가 있습니다. 여기까지 내가 가진 것입니다 : #!/bin/bash FILES="/home/john/my directory/*.txt" for f in "${FILES}" do echo "${f}" done 내가하고 싶은 것은 모든 .txt파일을 for루프로 나열 하여 그들과 함께 할 수 있습니다. 그러나 공간 my directory과 별표 의 공간 *.txt은 잘 재생되지 않습니다. 변수 이름에 …
Bash에 이것을 입력하고 있습니다 : scp user@remote:~/dir/*.xml . 원격 서버에서 와일드 카드를 만드는 모든 파일을 가져옵니다. 그러나 왜 이것이 작동합니까? Bash는 인수가와 같은 도구에 표시되기 전에 인수에서 와일드 카드 표현식을 확장한다고 생각했습니다 scp.
글 로빙 (globbing)을 통해 zsh에서 두 개의 정수 (예 : 2-57)로 파일 범위를 사전 식 순서로 지정하고 싶습니다. 예를 들면 : "글로브 패턴과 일치하는 경로 아래에서 사전 순서대로 파일 2에서 57을 선택하십시오". 대괄호를 사용하면 그렇게 될 것이라고 생각했습니다. for x in /foo/bar/*[2-57]; do print $x; done 그러나 zsh는 분명히 파일 …
세 개의 파일이있는 폴더가 있다고 가정합니다. foo1 foo2 bar 1. 내가 달리면 list_of_files=$(print foo*) echo $list_of_files 나는 얻다: foo1 foo2 2. 내가 달리면 list_of_files=$(print bar*) echo $list_of_files 나는 얻다: bar 3. 그러나 내가 달리면 list_of_files=$(print other*) echo $list_of_files 나는 얻는다 : zsh: no matches found: other*( $list_of_files하지만 변수 는 비어있다) …
약 4k 파일이있는 폴더가 있습니다. 이 파일 중 일부는 a ?또는 !character로 시작 합니다. 그것들을 삭제해야하지만 그렇게하는 표현식을 찾을 수 없습니다 : rm -f ./?* 모든 것을 삭제합니다. grepls를 사용 하고 파이프를 통해 xargs파일을 다른 폴더로 옮길 수는 있지만 적절한 방법이 있기를 바랐습니다. ?및 !파일 모두에 도움이 필요 합니다.
나는 .gitignore비슷한 것과 비슷한 정규식을 가지고있다 : (Big|Small)(State|City)-[0-9]*\.csv 작동하지 않아서 RegexLab.NET 에 대해 테스트했습니다 . 그런 다음 gitignore 매뉴얼 페이지에서 gitignore가 정규 표현식을 사용하지 않고 fnmatch (3)을 사용한다는 것을 알게되었습니다 . 그러나 fnmatch에는 캡처 그룹과 동등한 것으로 보이지 않습니다. 이것이 가능합니까 아니면 이것을 세 줄로 나눌 필요가 있습니까?
여러 개의 확장자를 가진 파일을 단일 대상 디렉토리에 복사하고 싶습니다. 예를 들어 다음 명령을 사용 하여 작업 디렉토리의 모든 .txt 파일을 다음 디렉토리에 복사 할 수 있습니다 destination. cp -v *.txt destination/ 그리고 다음을 사용 하여 작업 디렉토리의 모든 .png 디렉토리를 다음으로 복사 할 수 있습니다 destination. cp -v *.png …
다음 명령 것 tar모두 "점"파일 및 폴더 : tar -zcvf dotfiles.tar.gz .??* 나는 정규 표현식에 익숙 하지만 해석 방법을 이해하지 못한다 .??*. 나는 나열된 파일을 실행 ls .??*하고 tree .??*보았다. 예를 들어이 정규식에 폴더 내 모든 파일이 포함 .됩니까?
특정 URL 경로에서 찾은 파일을 수동으로 다운로드하지 않으려면 어떤 옵션이 있습니까? 와일드 카드 사용이 실패합니다. $ wget 'http://www.shinken-monitoring.org/pub/debian/*deb' Warning: wildcards not supported in HTTP. .... 이것은 물론 파일 이름을 미리 모른다고 가정합니다.
를 사용하면 zsh맞지 않는 패턴을 선택하거나 rm출력을 리디렉션 할 때도 "No match found"메시지가 나타납니다 . # rm * > /dev/zero 2>&1 zsh: no matches found: * 이 메시지를 어떻게 제거 할 수 있습니까?
findwith를 사용 grep하면 패턴과 일치하는 파일을 찾을 수 있습니다. # find | grep error ./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html ./error_log ./includes/classes/error_log 그러나 find단독으로 사용 하면 첫 번째 파일을 찾을 수 없습니다. # find . -name error* ./error_log ./includes/classes/error_log 와 함께 사용 하지 않을 때 왜 파일을 find찾지 errors.html못 grep합니까? find이 파일을 표시 하는 데 …
주어진 디렉토리 안에 숨겨진 파일을 일치시키는 방법 예를 들어 아래 명령을 수행하면 숨겨진 파일의 결과가 표시되지 않습니다. du -b maybehere*/* 사용하는 대신 단일 명령을 사용하여이 간단한 작업을 수행하는 방법 du -b maybehere*/.* maybehere*/* 어딘가에 두 번 입력해야합니다.
정렬되지 않은 수천 개의 파일이있는이 거대한 폴더가 있습니다. mv명령을 통해 처음 5000을 하위 폴더로 옮길 수 있습니까? 지금은 mv *some_pattern* ./subfolder1/ 지금은 이미지를 임의로 무작위로 옮깁니다. 각 하위 폴더에 정확히 5000 개의 파일이 없으면 중요하지 않습니다. 더 좋은 방법이 있습니까?