ln: --no-target-directory implies --no-dereference
as in GNU coreutils Signed-off-by: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		
				
					committed by
					
						 Denys Vlasenko
						Denys Vlasenko
					
				
			
			
				
	
			
			
			
						parent
						
							4527273f1c
						
					
				
				
					commit
					71b268c7d9
				
			| @@ -41,7 +41,6 @@ | ||||
|  | ||||
| /* This is a NOEXEC applet. Be very careful! */ | ||||
|  | ||||
|  | ||||
| #define LN_SYMLINK          (1 << 0) | ||||
| #define LN_FORCE            (1 << 1) | ||||
| #define LN_NODEREFERENCE    (1 << 2) | ||||
| @@ -63,7 +62,22 @@ int ln_main(int argc, char **argv) | ||||
| 	int (*link_func)(const char *, const char *); | ||||
|  | ||||
| 	opts = getopt32(argv, "^" "sfnbS:vT" "\0" "-1", &suffix); | ||||
|  | ||||
| /* | ||||
| 	-s, --symbolic		make symbolic links instead of hard links | ||||
| 	-f, --force		remove existing destination files | ||||
| 	-n, --no-dereference	treat LINK_NAME as a normal file if it is a symbolic link to a directory | ||||
| 	-b			like --backup but does not accept an argument | ||||
| 	--backup[=CONTROL]	make a backup of each existing destination file | ||||
| 	-S, --suffix=SUFFIX	override the usual backup suffix | ||||
| 	-v, --verbose | ||||
| 	-T, --no-target-directory | ||||
| 	-d, -F, --directory	allow the superuser to attempt to hard link directories | ||||
| 	-i, --interactive	prompt whether to remove destinations | ||||
| 	-L, --logical		dereference TARGETs that are symbolic links | ||||
| 	-P, --physical		make hard links directly to symbolic links | ||||
| 	-r, --relative		create symbolic links relative to link location | ||||
| 	-t, --target-directory=DIRECTORY	specify the DIRECTORY in which to create the links | ||||
|  */ | ||||
| 	last = argv[argc - 1]; | ||||
| 	argv += optind; | ||||
| 	argc -= optind; | ||||
| @@ -86,7 +100,10 @@ int ln_main(int argc, char **argv) | ||||
| 		src = last; | ||||
|  | ||||
| 		if (is_directory(src, | ||||
| 		                (opts & LN_NODEREFERENCE) ^ LN_NODEREFERENCE | ||||
| 				/*followlinks:*/ !(opts & (LN_NODEREFERENCE|LN_LINKFILE)) | ||||
| 				/* Why LN_LINKFILE does not follow links: | ||||
| 				 * -T/--no-target-directory implies -n/--no-dereference | ||||
| 				 */ | ||||
| 				) | ||||
| 		) { | ||||
| 			if (opts & LN_LINKFILE) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user