1

1) в каталоге "А":

находить . -тип f> a.txt

2) в каталоге "Б":
кот a.txt | пока читаешь FILENAMES; коснитесь "$ FILENAMES"; сделанный

3)
Результат: 2) "создает файлы" [я имею в виду только с тем же именем файла, но с размером 0 байт] хорошо. Но если в каталоге "A" есть подкаталоги, то 2) не может создавать файлы в подкаталоге, потому что в нем нет каталогов.

Вопрос: есть ли способ, которым "прикосновение" может создавать каталоги?

2 ответа2

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 где я назвал скрипт touchMakingDirs и поместил его на моем пути.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .