1/* 2 * link implementation for busybox 3 * 4 * Copyright (C) 2017 Denys Vlasenko <vda.linux@googlemail.com> 5 * 6 * Licensed under GPLv2, see file LICENSE in this source tree. 7 */ 8//config:config LINK 9//config: bool "link (3.2 kb)" 10//config: default y 11//config: help 12//config: link creates hard links between files. 13 14//applet:IF_LINK(APPLET_NOFORK(link, link, BB_DIR_BIN, BB_SUID_DROP, link)) 15 16//kbuild:lib-$(CONFIG_LINK) += link.o 17 18//usage:#define link_trivial_usage 19//usage: "FILE LINK" 20//usage:#define link_full_usage "\n\n" 21//usage: "Create hard LINK to FILE" 22 23#include "libbb.h" 24 25/* This is a NOFORK applet. Be very careful! */ 26 27int link_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 28int link_main(int argc UNUSED_PARAM, char **argv) 29{ 30 getopt32(argv, "^" "" "\0" "=2"); 31 argv += optind; 32 if (link(argv[0], argv[1]) != 0) { 33 /* shared message */ 34 bb_perror_msg_and_die("can't create %slink '%s' to '%s'", 35 "hard", argv[1], argv[0] 36 ); 37 } 38 return EXIT_SUCCESS; 39} 40