"touch"를 사용하여 디렉토리를 만드시겠습니까?


1

1) "A"디렉토리에서 :

find.

"B"디렉토리에있는 f-a.txt 를 입력하십시오.
cat a.txt | FILENAMES을 읽는 동안; "$ FILENAMES"를 터치하십시오. 완료

3)
결과 : 2) "파일을 생성합니다"[i 파일 이름은 같지만 바이트 크기는 0입니다]. 그러나 "A"디렉토리에 하위 디렉토리가 있으면 2) 하위 디렉토리에 파일이 없기 때문에 하위 디렉토리에 파일을 작성할 수 없습니다.

질문 : "touch"가 디렉토리를 만들 수있는 방법이 있습니까?


ServerFault에 크로스 게시 : serverfault.com/questions/223267/…
Bobby

답변:


4

원하는 최종 결과는 무엇입니까?

디렉토리 구조를 복제하려는 경우 더 쉬운 방법이 있습니다. 동기화 솔루션이 먼저 떠 오릅니다.

예 :

rsync -a / source / dir / / dest / dir / --include \ * / --exclude \ *

이것은 전체 디렉토리 구조를 다시 만듭니다. 그런 다음 터치 명령을 실행하여 나머지를 완료 할 수 있습니다.

앞에서 언급했듯이 전체 문제를 안다면 더 우아한 해결책을 찾을 수 있습니다. :)


2

이 스크립트를 사용할 수 있습니다. 당신은 사용해야합니다chmod +x scriptname

#!/usr/bin/env ruby
# touchMakingDirs: a Ruby script to be able to touch a file and optionally create the directories necessary
# by Dan Rosenstark 2013-03-18 
if __FILE__ == $0
  if ARGV.length == 0
    puts "Sorry, include one argument for filename"
    exit
  end

  filename = ARGV[0]
  puts "Will touch file #{filename}"
  path = File.dirname(filename)
  #filename = File.basename(filename)  
  `mkdir -p \"#{path}\"`
  `touch \"#{filename}\"`
end

몇 가지 작은 테스트에서 작동했습니다. 내가 놓친 테스트 사례가 있는지 알려주십시오. 나는 그것을 다음과 같이 사용한다 touchMakingDirs blah/blah/whatever/who.txt.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.