Total Pageviews

Friday, 12 July 2019

MAC OS X下的一些小技巧

MAC 支持NTFS写操作

mac os x是原生支持ntfs读操作的,但由于某些原因,写操作被屏蔽了。有的时候我们需要打开ntfs的写操作。可以通过修改 /etc/fstab实现。
#假设移动硬盘的卷标是My Passport,那么修改如下
 LABEL=My\040Passport none ntfs rw,auto,nobrowse

iTunes Photo支持多个资料库

检查了一下磁盘空间,photo资料库居然达到80个G了,考虑把photo资料库转移到移动硬盘上去,留出空间给其他磁盘用。
1、考虑资料库到移动硬盘。移动硬盘的分区最好为HFS+格式
cd /Volume/backup/"照片 Library.photoslibrary"
ruby /Users/mike/work/tools/sync.rb -c /Users/mike/Pictures/"照片 Library.photoslibrary" .
2 按住option键,打开照片应用,此时会出现一个对话框让你选择资料库。此时可以检查备份的照片是否都OK了。
3 iTunes的资料库也可以同样处理。
cd /Volume/backup/iTunes
ruby /Users/mike/work/tools/sync.rb -c /Users/mike/Music/iTunes .
4 目录同步的小工具
这个工具会递归的坚持目标路径、文件是否存在,如果不存在,则创建目录、复制文件;如果存在,再检查判断文件大小是否和源文件一致,如果不一致,就覆盖目标文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#require 'FileUtils'


def ns(s1,s2)
 len=s2.length
 ind = s1.index(s2)

 return s1[(ind+len)..s1.length-1]
end

require 'find'
require 'FileUtils'

def copy_dir(dir1,dir2)
 Find.find(dir1) do |path|
   #p path
   if FileTest.directory?(path)
     if File.basename(path)[0] == '.'
       Find.prune       # Don't look any further into this directory.
     else
       #all directory branch
       #p path 
       np= dir2+ns(path,dir1)
       if !Dir.exist?(np) #path not found in dest directory,create it.
        p "creating new directory: #{np}"
        Dir.mkdir(np)
       else
        #p np
       end

       next
     end
   else
      # all file branch
      np= dir2+ns(path,dir1)
      if !File.exist?(np) #file not found ,copy source file to dest directory
        p "copy file : #{np}"
        FileUtils.cp path,np
       else
        #p np
        #file exist, check file size is identical ?
        size1=FileTest.size(path)
        size2=FileTest.size(np)
        if size1!=size2
          p "#{ns(path,dir1)} SIZE is different, diff=#{size2-size1}" 
           FileUtils.cp path,np
         end
            
       end
    #p path
     #total_size += FileTest.size(path)
   end
 end
end

#copy_dir('/Users/mike/weblog',"/Users/mike/test")

def print_help
    puts "This Tool copy all files in source_directory to dest_dir, mkdir if necessay"
    puts "-c [src_dir] [dest_dir]   "
    puts "-h  This help"    
end

 if ARGV.length != 0
 
    ARGV.each do |ele|       
     if  ele == '-h'          
      print_help
      exit 
     end 

     if ele == '-c'
      src_dir = ARGV[ARGV.index(ele)+1]
      dest_dir = ARGV[ARGV.index(ele)+2]
      if !Dir.exist?(src_dir)
       p "source #{src_dir} not exist!!"
       exit
      end

      if !Dir.exist?(dest_dir)
       p "dest #{dest_dir} not exist!!"
       exit
      end

      copy_dir(src_dir,dest_dir)
    end
   end
end

 if ARGV.length == 0
  print_help
 end

No comments:

Post a Comment